スクリプトで問題の原因となる文字を削除するためにファイルの名前を変更しようとしています。これはアンパサンドと感嘆符でうまくいきますが、ファイルにパーセント記号がある場合、変数には先頭には表示されません。 forループを介して特殊文字を含むファイルを渡すにはどうすればよいですか?バッチ:変数内の%記号を置き換える方法は?
for %%v in (*) do call :validate "%%v"
exit /b
:validate
set "original=%~nx1"
set "newtitle=%original:!=%"
set "newtitle=%newtitle:&=and%"
setlocal enabledelayedexpansion
set "newtitle=!newtitle:%%= percent!"
if not "%newtitle%"=="%original%" ren %1 "%newtitle%"
あなたはこの構文を見たことがありますか? 'Set" Var = String "' – Compo
はい、なぜですか?それは助けにはならない。 – bricktop
まだありません。 %%を指定すると、結果の変数は空になります。^%は変わりません。 – bricktop