これは重複した質問のように見えるかもしれませんが、そうではありません。私の問題は少し異なります。実際、私はたくさんの mp4 ファイルを含むフォルダーを持っていて、それぞれのファイル名に GOOD という接尾辞を付けたいと考えていました。前の質問への回答を見て、私はあることをして、実際に .mp4good という接尾辞を付けることになりました。そのため、元々 a.mp4 だったファイルは、aGOOD.mp4 (私が実際に望んでいたもの) ではなく、a.mp4good.mp4 になりました。幸いなことに、これらのファイルはすべて実行されていますが、名前は私が望んでいたものではありません。この時点から私が望むものを取得する方法について助けを求めます。私は、これらのファイルを含むフォルダーから DOS で名前変更コマンドを使用しました。
答え1
ご存知のとおり、ベース名にサフィックスを追加するために使用した構文は間違っていました。理由の説明は、 Windows の RENAME コマンドはワイルドカードをどのように解釈しますか?このリンクには、ベース名に追加するための正しい構文もあります。
ren *.mp4 ??????????????????GOOD.*
?
最長の基本名の長さと一致するだけの十分な長さが必要です。
形式の開始名がいくつかある場合a.b.mp4
、上記は となることに注意してくださいaGOOD.b.mp4
。 が必要な場合a.bGOOD.mp4
は、単純な REN コマンド以上のものが必要になります。
for %F in (*.mp4) do @ren "%F" "%~nFGOOD.mp4"
バッチスクリプトにコマンドを入れる場合は、パーセントを2倍にする必要があります。
@echo off
for %%F in (*.mp4) do ren "%%F" "%%~nFGOOD.mp4"
現在、 という形式の名前がありa.mp4GOOD.mp4
、 が必要ですaGOOD.mp4
。
解決策は次のとおりです。
ren *.mp4GOOD.mp4 ??????????????????GOOD.mp4
名前に 2 つ以上のドットが含まれる場合は、単純な REN コマンド以上のものが必要になります。
for %A in (*.mp4GOOD.mp4) do @for %B in ("%~nA") do @ren "%B" "%~nBGOOD.mp4
コマンドをバッチ スクリプトに配置する場合は、パーセントを 2 倍にすることを忘れないでください。