【发布时间】:2019-10-18 18:47:57
【问题描述】:
我正在尝试以递归方式将一大组文件从 foobar.ext 重命名为 foobar.bak,然后删除超过 3 个月大的文件夹的内容。
我已经阅读了很多帖子,但语法让我难以理解,通常我在运行批处理文件后会得到一个空白命令行。
D:
CD\
FOR /R %%x IN (foobar.ext) DO ECHO ren "%%x" *.bak
CD \rvt_backup
FORFILES /D -90 /M *.rvt /C "cmd /c DEL @fname"
没有重命名文件,只有文件夹路径列表,每个路径后跟“系统找不到指定的文件”。 然后是一个没有删除文件的空白命令行。
【问题讨论】:
-
您需要明确您的文件和文件夹的确切位置...
-
您执行“Echo rename”,意思是“显示重命名命令”,而不是执行它。放下“echo”命令会发生什么?
-
@Kris 如
ren的文档 (ss64) 中所述。在DO子句和删除echo之后写入ren "%%x" "%~nx.bak"。可能,它应该可以正常工作。 -
我建议您不要使用元变量
%x,因为%~x可能会与extensions 混淆。
标签: file date batch-file rename