通し番号の付いているファイル名を一つ後ろにずらしてリネームをするバッチファイル

2024年4月27日

画像認識で使っているファイル名をずらしたかったので作りました

バッチファイル

リネームを開始する番号を指定してください

リネームするコマンドをコメントにしてテストしてから使ってください

10以上あるファイルに対応しました

@echo off
rem -----------------------------------------
set TARGET=butonimagej
set TARGET2=.bmp
set REPLACE=butonimagej#
set count=0
set st=4
set FLD_NAME=C:\app\autoit3\autoit-opencv-com\samples\#meba2
set FILE_NAME1=%FLD_NAME%\%TARGET%*%TARGET2%
set FILE_NAME11=%FLD_NAME%\%REPLACE%*%TARGET2%
rem -----------------------------------------
for /f "delims=;" %%f in ('dir /b /o-n  %FILE_NAME1%') do  call :sub %%f
timeout /t 9
for /f "delims=;" %%f in ('dir /b /o-n  %FILE_NAME11%') do  call :sub2 %%f
timeout /t 9
goto eee
:sub
set FILE_NAME=%1
call set nc=%%FILE_NAME:%TARGET%=%%
call set nc=%%nc:%TARGET2%=%%
set /a nc2=%nc%+1
rem set nc2=0%nc2%
rem set nc2=%nc2:~-2,2%
set /a nc=%nc%*1

rem call set FILE_NAME=%%FILE_NAME:%TARGET%=%REPLACE%%%
set FILE_NAME2=%TARGET%%nc2%%TARGET2%
if exist "%FLD_NAME%\%FILE_NAME2%" set FILE_NAME2=%REPLACE%%nc2%%TARGET2%
set /a count=%count%+1
if %st% leq %nc% (
 echo %count% %nc% %FILE_NAME% %FILE_NAME2%
 rem
 ren "%FLD_NAME%\%FILE_NAME%" "%FILE_NAME2%"

)
exit /b


:sub2
set FILE_NAME=%1
call set FILE_NAME2=%%FILE_NAME:%REPLACE%=%TARGET%%%
echo %FILE_NAME% %FILE_NAME2%
rem
ren "%FLD_NAME%\%FILE_NAME%" "%FILE_NAME2%"

exit /b



goto :EOF

:eee

bat,windows

Posted by eightban