【发布时间】:2017-07-26 03:53:45
【问题描述】:
我想根据从其他文件夹修改的日期制作文件复制命令。
我有这样的批处理文件,但这只能复制一个文件
@echo off
set folder1=D:\FTP-NSQM\2G_VOLUME\2017
set folder2=D:\FTP-NSQM\newday\2gvolume
for /f "tokens=*" %%a in ('dir /b /a-d /o-d "%folder1%\*.csv"') do copy "%folder1%\%%~a" "%folder2%" & goto next
:next
echo Carrying on with rest of batch
pause
如何复制多个上次修改的文件?
例如,我有这样的文件。我想将文件 a.csv、b.csv 和 c.csv 从文件夹 1 复制到文件夹 2 如果可能,我想删除文件夹 2(d.csv、e.csv 和 f.csv)上的先前数据
+--------------------------+ +--------------------------+
| folder 1 | | folder 2 (before) |
+----------+---------------+ +----------+---------------+
| name | date modified | | name | date modified |
+----------+---------------+ +----------+---------------+
| a.csv | 2017-07-26 | | d.csv | 2017-07-25 |
| b.csv | 2017-07-26 | | e.csv | 2017-07-25 |
| c.csv | 2017-07-26 | | f.csv | 2017-07-25 |
| d.csv | 2017-07-25 | +----------+---------------+
| e.csv | 2017-07-25 | I hope :) be like this
| f.csv | 2017-07-25 | +--------------------------+
| g.csv | 2017-07-24 | | folder 2 (after) |
| h.csv | 2017-07-24 | +----------+---------------+
| i.csv | 2017-07-24 | | name | date modified |
| ..... | ....-..-.. | +----------+---------------+
+----------+---------------+ | a.csv | 2017-07-26 |
| b.csv | 2017-07-26 |
| c.csv | 2017-07-26 |
+----------+---------------+
【问题讨论】:
-
标准是什么。我可以找出修改的日期。但是我是否必须复制修改日期超过特定日期的文件?
-
我想复制上次修改日期:)
-
在以'do'开头的行中你需要一个冒号(:next)
-
您发布的代码无法运行,因为存在语法错误。当您要复制第二个目录中当前不存在的那些文件时,是否可以重述问题?如果第一个目录中的文件日期与第二个目录中的文件日期不同,您是否还想复制第一个目录中确实存在于第二个目录中的文件?
-
@Marichyasana :不,在
goto :eof的特定情况下,gotoexcept 中不需要冒号。事实上,我建议从不在goto中使用冒号,goto :eof除外
标签: batch-file