【问题标题】:Removing spaces in file names duplicate error删除文件名中的空格重复错误
【发布时间】:2015-12-16 00:31:48
【问题描述】:

我有以下脚本可以从文件名中删除空格:

@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)。

有人可以帮忙吗?谢谢

【问题讨论】:

    标签: batch-file


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2016-10-08
      • 1970-01-01
      • 2016-08-22
      相关资源
      最近更新 更多