私はいくつかのファイルをダウンロードし、名前を変更し、古いものを置き換えるためにコピーしたプロセスを簡略化するバッチコードを書いています。私は、ディレクトリからファイルのリストでFORループを読み込んだ後、ファイル名を変更しようとする問題が発生しています。forループ内の変数文字列の終了テキストを削除する方法
ファイル名にはすべて名前にFLYが含まれています.FLYの後にすべてのテキストを削除します。ファイル名の長さに一貫性がなく、複数のスペースがあり、トークン数が設定されていないため、トークンを使用できません。 FLYの後に文字数が設定されていないため、部分文字列を使用できません。
私はSS64での例を使って試してみましたが、ここで数多くのスレッドを読み込んでいますが、実際には私の状況に合致するものはありません。
ここでコードスニペットだ、感謝し、私は間違って行くよどこ誰かが私を伝えることができた場合:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=*" %%A IN ('DIR /B ^"%~DP0VFR^"') DO (
SET FILENAME=%%A
SET REMOVETEXT=!FILENAME:*FLY=!
SET NEWFILENAME=!FILENAME:!REMOVETEXT!=!
ECHO !FILENAME! will be renamed !NEWFILENAME!
)
を私は何がすべてで起こって見にエコーを挿入すると何とか最後のSET、まで期待通りに動作します最後の結果は!NEWFILENAME!空白です。
Occam's Razorの完璧な例です。 – Squashman