重命名目录中 1 天前的所有文件

重命名目录中 1 天前的所有文件

我想将指定文件夹中所有以 .txt 结尾且超过 1 天的文件重命名为 .csv。我有以下命令可以获取所有以 .txt 结尾的文件并将其重命名为 .csv

For /R %1 %%G IN (*.txt) DO ren "%%G" "%%~nG.csv"

我遇到的问题只是重命名超过一天的文件。我正在寻找一种无论系统上设置的日期格式如何都能正常工作的解决方案。

谢谢

答案1

您可以使用forfiles,这是 Windows Vista 以来的本机命令。

福尔菲莱斯

选择并执行针对一个文件或一组文件的命令。此命令对于批处理很有用。

参数

/p <Path>
指定开始搜索的路径。默认情况下,搜索从当前工作目录开始。

/m <SearchMask>
根据指定的搜索掩码搜索文件。默认搜索掩码为*.*

/s
指示福尔菲斯命令以递归方式搜索子目录。

/c "<Command>"

对每个文件运行指定的命令。命令字符串应该用引号括起来。默认命令是“cmd /c echo @file”

/d [{+|-}][{<Date>|<Days>}]

选择最后修改日期在指定时间范围内的文件。

来源:福尔菲莱斯

示例用法

for /f "delims=" %%G in (
'forfiles /p %1 /m *.txt /s /c "cmd /c echo @path" /d -1'
) do ren "%%~G" "%%~nG.csv"

进一步阅读

相关内容