【发布时间】:2016-02-03 08:24:38
【问题描述】:
我看过这里Batch file to copy directory if it has a later created date than the target directory
for /f "tokens=*" %%a in ('dir/b /od \\machine\c$\location') do set newest=%%a
xcopy /e /k "%newest%" "\\machine\c$\otherlocation"
popd
pause
对我不起作用:(下面和上面解释的是我使用的代码)
Dos 显示 "xcopy /e /k "file.bat" "location" fie not found - file.bat 0 文件已复制" 问题是这个文件不是最新创建的
我尝试了各种无法正常工作的代码。
我想要达到的目标:
像一个批处理文件,它将按创建日期搜索目录,选择最新的创建日期,然后复制到不同的方向,例如将复制上午 08:16 创建的文件,而不是创建当天上午 8:15 创建的文件。
如果这批可以按创建日期、文件类型和文件名 E.g 中的一串文本进行搜索,那就太棒了
文件:(格式为日/月/时间)
Test01010815.bat created 01/01 08:15
Test01020817.bat created 01/02 08:17
Test01020818.csv created 01/02 08:18
Test01020819.csv created 01/02 08:19
然后复制 CSV,因为我只想要 CSV,并复制底部文件,因为它是最新创建的 CSV
同时尝试过这个:
for /f "delims=" %%i in ('dir /b /a-d /od "\\location\STARTTofFILEname*.*"') do set "LatestModifiedFile=%%~i"
xcopy /F /Y "\\el-1311932\c$\batch\export\exe\%LatestModifiedFile%" "\\el-1311932\c$\batch\exe\test\StockExport.csv"
【问题讨论】:
-
“对我不起作用”并没有解释它做了什么你不希望它做的事情,或者它没有做什么你想让它做的事情。根据您的描述,您发布的代码应该有效。仅文件名就足以满足您的
last-created标准吗?也就是说,名称是否可靠,还是您真的要按创建日期处理? -
对主题的编辑完成。我真的很想按创建日期处理(可能会提高速度?)我将在这个目录中有数百个文件。我可以使用文件名进行拉取,但我真的不希望批处理扫描每个文件名,因为我不希望该批处理减慢任何速度或花费太长时间。如您所见,我的目标是检查文件的创建时间,然后将最新的复制到不同的目录,如果您认为扫描文件名没问题,那么我就这样做。
-
好的,文件是最新创建的,运行时会自动覆盖
标签: batch-file file-type