所以在另一个最近的问题中,我需要通过在文件名中添加.ab来找到批量重命名文件的解决方案。我成功地做到了,但是现在我面临另一个问题。每次运行批处理文件时,它都会将.ab附加到所有文件中,即使那些文件已经重命名。我尝试通过以下方式解决问题,但无法正常工作。
rem @echo off
FOR /R "C:\Users\" %%G in (*.txt) DO (
%%G|findstr /i /L ".ab">nul
IF errorlevel 1 (
REN "%%G" "%%~nG.ab.txt"
) ELSE (
skip %%G
)
)
pause
基本上,我需要检查文件名中是否已经包含“ .ab”,然后根据结果跳过或添加.ab。我将不胜感激。
使用 单行batch-file示例,(不包括那些以不包含,For /F
循环,而不是For /R
。另外,不要将Dir
命令及其/S
选项与(将输出以.txt*
结尾的项目] >>一起使用,而应将Where
及其/R
选项与之配合使用,(将输出以.txt
)] ..]结尾的项目。.ab
结尾的基名):@For /F "Delims=" %%G In ('^""%__AppDir__%where.exe" /R "C:\Users" ".txt" 2^>NUL^|"%__AppDir__%findstr.exe" /IV "\.ab\.txt$"^"')Do @Ren "%%G" "%%~nG.ab%%~xG"
[如有必要,请不要忘记更改C:\Users
和/或.txt
和ab
的两个实例。