Created
November 7, 2018 14:29
-
-
Save TeraokaAkihiro/65185b818bce1ad376b866e9f1d0ceaa to your computer and use it in GitHub Desktop.
hk03ne/renban_rename.batの桁数指定バージョン
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
setlocal enabledelayedexpansion | |
:: hk03neさんの桁数指定バージョン : 複数ファイルを一括で連番付きファイル名にリネームするバッチファイル | |
:: https://gist.github.com/hk03ne/3edd7b5c6a276c2bf6268a9248c8b484 | |
:: 連番(整数) | |
set /a INT_INDEX=1 | |
:: 連番を0で桁揃えする長さ | |
set /p PAD_LENGTH="0で桁揃えする長さ : " | |
:: リネームしたファイル数 | |
set /a FILE_NUM=0 | |
:: ループ処理開始 | |
:loop_start | |
:: 引数がなくなったら終了 | |
if "%~1"=="" goto loop_exit | |
:: ファイルが存在しないときはスキップする | |
if not exist "%~1" ( | |
echo ファイル "%~1" は存在しません。スキップします。 | |
shift | |
goto loop_start | |
) | |
pushd "%~dp1" | |
:: 0で桁揃えした連番をつくる | |
set INDEX=00000000000000%INT_INDEX% | |
set INDEX=!INDEX:~-%PAD_LENGTH%! | |
:: リネーム処理 | |
set FILENAME=%~nx1 | |
set NEW_FILENAME=%INDEX%%FILENAME% | |
ren "%FILENAME%" "%NEW_FILENAME%" | |
:: エラー処理 | |
if not %ERRORLEVEL%==0 ( | |
if exist %NEW_FILENAME% ( | |
:: ファイル名の重複でリネームが失敗したときは次の連番でリネームを試みる | |
set /a INT_INDEX+=1 | |
goto loop_start | |
) else ( | |
:: その他のエラー時 | |
echo 不明なエラー : %FILENAME%。スキップします。 | |
shift | |
goto loop_start | |
) | |
) | |
:: ログ出力 | |
echo "%FILENAME%"→"%NEW_FILENAME%" | |
popd | |
shift | |
set /a INT_INDEX+=1 | |
set /a FILE_NUM+=1 | |
goto loop_start | |
:: ループ処理終了 | |
:loop_exit | |
echo %FILE_NUM%個のファイルをリネームしました。 | |
pause | |
endlocal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment