因为我有所有文件的多个备份副本,所以我使用以下批处理文件来重命名文件,这样我就不必进入每个驱动器/文件夹来手动重命名文件。批处理文件适用于重命名文件。但是,在重命名文件夹时,有时它会起作用,有时它会生成另一个具有更正名称的文件夹。发生这种情况时,并非每个要重命名的文件夹都会发生这种情况,只有部分文件夹会发生这种情况。
批处理文件有问题吗?如何纠正?
chcp 65001
if exist C:\rename-all-4.txt del c:\rename-all-4.txt
SETLOCAL EnableDelayedExpansion
(for /f "tokens=1,2 delims=;" %%A in ('"TYPE C:\RENAME-ALL.txt"') do (
echo %%A | find /i "\"
if errorlevel 1 (
RENAME "D:\!mypath!%%A" "%%B"
RENAME "E:\!mypath!%%A" "%%B"
RENAME "\\PC1\D\!mypath!%%A" "%%B"
RENAME "\\PC1\E\!mypath!%%A" "%%B"
) ELSE (
echo "found pattern"
echo %%A
set mypath=%%A
echo mypath is !mypath!
)
)
) >> C:\RENAME-ALL-4.txt 2>&1
endlocal
CD /D C:\
以下是缩短的输入文件。运行批处理文件后,原来的文件夹(中国人民银行_files)仍然存在,还有一个新的文件夹(中国人民银行_files)。
News\
中国人民银行_files;中國人民銀行_files
此外,尝试将
errorlevel
条件替换为运算符&&
和||
关于
errorlevel
在.bat
vs.cmd
文件中使用。源链接到ss64.com
一些进一步的阅读:
[√]如果
[√]查找
[√]循环
[√] For /F 循环
[√] !错误级别!%错误级别%
[√]条件执行 || && ...
[√]理解批处理文件中的start、2>nul、cmd等符号