【问题标题】:Batch File - Copy latest using creation date and string of text批处理文件 - 使用创建日期和文本字符串复制最新的
【发布时间】: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


【解决方案1】:

您已开始使用映射驱动器 z:,然后更改代码以留下孤立的 popd 并使用 URL,现在您使用两个...

这应该可行:

set "sourcedir=\\machine\c$\location"
set "destdir=\\el-1311932\c$\batch\export\exe"
for /f "delims=" %%i in ('dir/b /a-d /od "%sourcedir%\*.csv"') do set "LatestModifiedFile=%%~nxi"
xcopy /F /Y "%sourcedir%\%LatestModifiedFile%" "%destdir%\StockExport.csv"

【讨论】:

  • 必须为创建日期添加这些开关 (/b /a-d /od /t:) 你的版本让我完成了正确的路径谢谢你只是你的版本在修改日期找到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
相关资源
最近更新 更多