我试图想出一个很好的方法:
我们要避免的是一个" bug"存档中与命名约定匹配的所有文件都会被移动,这会导致我们的供应商打印旧文件。
当前的复制命令使用命名约定*,由于上述错误,它不起作用。
示例文件格式:Vendor_MP_Summary02162015103001.csv 所以它的MMDDYYYYHHMMSS日期格式
确定最新版本的最简单方法是修改文件。
答案 0 :(得分:2)
@echo off
setlocal enableextensions disabledelayedexpansion
for /f %%a in ('
dir /o-d /b /a-d "Vendor_MP_Summary*.csv"
^| (set /p "file=" ^& call echo("%%file%%"^)
') do set "lastFile=%%~a"
echo %lastFile%
或
@echo off
setlocal enableextensions disabledelayedexpansion
for /f %%a in ('
dir /o-d /b /a-d "Vendor_MP_Summary*.csv"
') do set "lastFile=%%~a" & goto :found
:found
echo %lastFile%
在这两个代码中,在for /f
命令的帮助下,在dir
命令中检索文件列表,以按降序日期顺序列出匹配文件,因此较新的文件是第一个。仅从完整列表中检索此行
在第一个代码中使用了set /p
命令的管道,因此只从文件列表中检索到一行并返回到for /f
在第二种情况下,完整列表返回到for /f
,在检索第一行后,goto
用于跳过处理列表的其余部分