web-dev-qa-db-ja.com

CMDバッチの名前変更。テキストファイルから新しい名前を読み取る

製品のUPCに名前を変更したい製品イメージのディレクトリがあります。スプレッドシートにファイル名のマッピングがあるので、CSVまたはタブ区切りでエクスポートできます。

指定されたfilenames.txt:

CurrentName     NewName
DSCN4033.png    750732000259.png
DSCN4023.png    750732000013.png
DSCN4024.png    750732000020.png
DSCN4022.png    750732000099.png

DSCN4033.pngは750732000259.pngになります

Bashでこれを行っている場合、コマンドは次のようになります。

古い新しいを読んでいる間; mv "$ old" "$ new"を実行します。完了<filenames.txt

これは、後継者がCygwinをいじる必要がないように、Windowsバッチファイルを使用して実行する必要がある作業中のプロジェクト用です。

2
picobit

現在の名前にスペースがない場合、コマンドラインから次のように機能するはずです。

for /f "skip=1 tokens=1*" %A in (filenames.txt) do ren "%A" "%B"

バッチファイルに入れる場合は、パーセントを2倍にする必要があります。

@for /f "skip=1 tokens=1*" %%A in (filenames.txt) do ren "%%A" "%%B"

FORは、CMD.EXEで使用できる最も複雑な内部コマンドです。使用する help forまたはfor /?コマンドラインからドキュメントにアクセスします。

3
dbenham