我有以下脚本从文件名中删除空格:
@echo oN
setlocal enabledelayedexpansion
for /r %%j in (*.*) do (
set filename=%%~nj
set filename=!filename: =!
if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
)
Pause
它运行良好,但我遇到的问题是,当删除空格并跳过文件时,将出现重复的文件名。我需要它将(2)附加到文件名(filename(2).doc)。
有人可以帮忙吗?感谢
答案 0 :(得分:1)
您可以在重命名之前检查文件是否存在。然后,您可以调用函数来编号文件名。
@echo oN
setlocal enabledelayedexpansion
for /r %%G in (*.*) do (
set filename=%%~nG
set filename=!filename: =!
if not "!filename!"=="%%~nG" (
IF EXIST "%~dpG\!filename!%%~xG" (
CALL :NUMBERUP "%%~G" "!filename!"
) ELSE (
ren "%%G" "!filename!%%~xG"
)
)
)
Pause
GOTO :EOF
:NUMBERUP
SET NUM=0
:LOOP
SET /A NUM+=1
IF EXIST "%~dp1\%~2%NUM%%~x1" GOTO LOOP
ren "%~1" "%~n2%NUM%%~x1"
GOTO :EOF