无论如何,我已经在这里看过以前的问题了,但是我要求提出具体案例。
目前正在尝试重命名某些文件,但实际上我希望覆盖重复名称的文件。
@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的同时将其删除。
上面的脚本就是这样做的,除非因为它已经重命名为已经存在的东西,否则它不会这样做。请注意,我上面的批处理代码可以在父文件夹中工作,所有子文件夹都将生效。
答案 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
(有效)
工作。