ファイル名の末尾にある特定の文字を消したいと考えております。
前回と同じ例えですが、「ABC」フォルダの中に00a.png、01a.png、00b.pngがあるとします。
その中の「a」という文字すべてを消す場合です。
set str=*.png for %%A in (%str%) do ( setlocal enabledelayedexpansion cd /d %~dp0 set keyword=a for /f "tokens=*" %%i in ('dir /b ^| findstr /i "%keyword%"') do ( set a=%%i ren "!a!" "!a:%keyword%=!" ) )
最初に上記のコードで起動したときはうまくいったのに、二回目以降はなにもされなくなりました。
なので、コードを変えることにしました。
set str=*.png set search=a for %%X in (%search%) do ( call :CHECK "%%~nA" if ERRORLEVEL 1 ren "!a!" "!a:%search%=!" ) exit /b :CHECK for %%A in (%str%) do ( echo %1 | find "%%X" > NUL if not ERRORLEVEL 1 exit /b 0 ) exit /b 1
上記のコードで試しても、やはりなにもされません。
どうすればよいのでしょうか?
###追記
「二回目以降はなにもされなくなりました。」と書いていますが、他にもいろんなフォルダに末尾にある特定の文字を消したい同じ名前のPNGファイルがたくさんあったため、何回かに分けてやろうとした結果、二回目以降なにもされなくなったということです。
回答1件
あなたの回答
tips
プレビュー