如何创建批处理文件以基于带时间戳的文件名复制最新文件

时间:2016-09-13 14:48:44

标签: batch-file

我有一个CSV文件目录,其文件名中有日期时间戳。我需要在名称中复制具有最新日期时间的文件。

我是批处理脚本的新手,这是我到目前为止所做的,因为你可以看到它复制一个文件,但不会遍历所有文件名,只复制最近的日期。 感谢您的帮助。

SET sourceDir=\\source\path
SET targetDir=\\target\path

copy "%sourceDir%\examplefile_20160111_010003.csv" "%targetDir%\newname.csv"

1 个答案:

答案 0 :(得分:1)

没有能够执行此操作的命令。你必须使用一个小技巧:

dir能够使用/on参数按字母顺序排序(这正是您想要的)。 /b仅为您提供文件名,/ a-d排除文件夹:

dir /a-d /on /b 

你想要最后一个。使用for循环获取它:

for /f "delims=" %%a in ('dir /a-d /on /b "%sourceDir%\examplefile_*.csv"') do set latest=%%a

然后你可以copy "%sourceDir%\%latest%" "%targetDir%\newname.csv"