batchecho offsetlocal enabledelayedexpansionset folder=DDataUnityProjectbingoDoshprojunitybingoDoshAssetsGameUIMainGameThemefor r folder F in do set filename=~nxF set filename=!filenamezuo=int
这个批处理脚本的作用是将指定文件夹下的所有文件名中的特定字符串进行替换,并重命名这些文件。
根据你提供的脚本和文件夹路径,我注意到可能有两个问题导致脚本没有起作用:
- 文件夹路径中存在空格:如果你的文件夹路径中有空格,需要将路径用引号括起来,例如:
set "folder="D:\Data\UnityProject\bingoDosh\proj.unity\bingoDosh\Assets\Game\UI\MainGameTheme""
- 文件名中的字符串匹配问题:脚本中使用了字符串替换函数
!filename:old=new!,但是你提供的替换逻辑可能有问题。如果你希望将文件名中的"zuo"替换为"intermediate","you"替换为"zuo","intermediate"替换为"you",可以修改脚本如下:
...
set "filename=!filename:zuo=intermediate!"
set "filename=!filename:you=zuo!"
set "filename=!filename:intermediate=you!"
...
请注意,这个脚本只会处理指定文件夹下的文件,不包括子文件夹中的文件。如果你希望处理子文件夹中的文件,可以将for命令修改为for /r,例如:
for /r "%folder%" %%F in (*) do (
...
希望这些解释可以帮助你找到问题所在。如果还有其他问题,请提供更多的细节和错误信息,以便我能更好地帮助你
原文地址: https://www.cveoy.top/t/topic/iYst 著作权归作者所有。请勿转载和采集!