存在重复的文件名,或者找不到该文件

时间:2017-02-14 12:16:49

标签: batch-file cmd

无论如何,我已经在这里看过以前的问题了,但是我要求提出具体案例。

目前正在尝试重命名某些文件,但实际上我希望覆盖重复名称的文件。

@echo off
setlocal
for /R %%A in ("tgt*.nif") do (
   set "fname=%%~A"
   call ren "%%fname%%" "%%fname:*tgt=%%"
)
pause

有什么建议吗?

编辑:正如所建议的那样,一个例子。嗯,这不是真的,而只是简单地说(读它不是"简单地说"但是pft):

我有两个文件,一个是TimeGoog.pdf,另一个是Goog.pdf。现在我在许多文件夹中都有这两个文件的变体,因此可能是TimeToot.pdf和Toot.pdf。我想将所有TimeGoog.pdf重命名为Goog.pdf,在删除旧Goog.pdf的同时将其删除。

上面的脚本就是这样做的,除非因为它已经重命名为已经存在的东西,否则它不会这样做。请注意,我上面的批处理代码可以在父文件夹中工作,所有子文件夹都将生效。

2 个答案:

答案 0 :(得分:1)

@echo off
    setlocal enableextensions disabledelayedexpansion

    for /r %%A in ("tgt*.nif") do (
        set "folder=%%~dpA"
        set "fileName=%%~nxA"
        setlocal enabledelayedexpansion
            echo move /y "!folder!!fileName!" "!folder!!fileName:*tgt=!"
        endlocal
    )
    pause

答案 1 :(得分:0)

这对我有帮助:将没有扩展名的文件重命名为具有扩展名的文件。 (.csv)

ren *.* *.csv(错误)

给出:文件名重复,或者找不到文件

ren *.* *.*csv(有效)

工作。