以前に書いたarray.batを用いたリネームツール
1.クリップボードにリネーム後のファイルネームの文字列(複数行)をコピー
2.リネームするファイルを選択し、このbatにD&D
3.undo、元に戻すときは『y』
【注意】
コピーした行数が、ファイル数より少ないとスルーされる
D&Dで掴んだファイルが一番目になる
@echo off
call %~dp0array.bat init
echo.
%ARRAY% array BEFORE %*
for /f "usebackq tokens=*" %%a in (`powershell get-clipboard`) do %ARRAY% shove AFTER "%%~a"
if %BEFORE.size% gtr %AFTER.size% (
echo less new name
goto :end
)
call :forSome RENAME BEFORE AFTER
echo.
echo # undo rename ?
echo.
:chooser2
choice /c yn
if %errorlevel% == 1 (
echo ### start undo
echo.
call :forSome UNDO BEFORE AFTER
) else if %errorlevel% == 2 (
goto :end
) else (
echo miss [%errorlevel%]
goto :chooser2
)
goto :end
:UNDO
echo %2
ren "%~dp2%~3%~x2" "%~nx2"
exit /b
:RENAME
if "%~2" == "empty" (
echo @@@ empty
exit /b
)
echo %2 %~dp2%~3%~x2
ren %2 "%~3%~x2"
exit /b
:forSome
set array.args=%*
call set array.args=%%array.args:*%~1 =%%
for /f "usebackq delims= tokens=*" %%a in (`%ARRAY% viewSome %array.args%`) do call :%~1 %%~a
exit /b
:end
pause