複数のフォルダの名前をバッチで変更する方法を探しています。基本的に、先頭にゼロを埋め込んで6桁にする必要があります
例:
123 ---> 000123
22 -> 000022
5678 --> 005678
私がそれを行う方法を知っている唯一の方法は次のとおりです。
for /f %f in ('dir /b') do ren "%f" "0%f" but this only pads it with 1 zero
助けてください。どんな方向でも感謝しますありがとう
複数のフォルダの名前をバッチで変更する方法を探しています。基本的に、先頭にゼロを埋め込んで6桁にする必要があります
例:
123 ---> 000123
22 -> 000022
5678 --> 005678
私がそれを行う方法を知っている唯一の方法は次のとおりです。
for /f %f in ('dir /b') do ren "%f" "0%f" but this only pads it with 1 zero
助けてください。どんな方向でも感謝しますありがとう
バッチ ファイルでは、次のコードを使用できます。
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for /F "delims=" %%I in ('dir /AD-L /B 2^>nul ^| %SystemRoot%\System32\findstr.exe /R /X "[0123456789][0123456789]*"') do (
set "FolderName=00000%%I"
set "FolderName=!FolderName:~-6!"
if not !FolderName! == %%I ren %%I !FolderName!
)
endlocal
使用するコマンドとその動作を理解するには、コマンド プロンプトウィンドウを開いて次のコマンドを実行し、各コマンドで表示されるすべてのヘルプ ページをよく読んでください。
dir /?
echo /?
endlocal /?
findstr /?
for /?
if /?
ren /?
set /?
setlocal /?
およびの説明については、コマンド リダイレクト演算子の使用に関する Microsoft のドキュメントを参照してください。Windows コマンド インタープリターがこのコマンド ラインを処理してからコマンドFORを実行する前にこのコマンド ラインを処理するときに、 FORコマンド ラインでキャレット文字を使用してリダイレクション演算子をエスケープする必要があります。バックグラウンド withおよびコマンド ラインが追加の引数として追加されます。2>nul
|
>
|
^
dir
findstr
cmd.exe /c
'