批处理脚本,用于根据上次修改日期或创建日期将文件从一个网络共享复制到另一个网络共享



我有两个网络共享驱动器:让我们称它们为:DriveA 和 DriveB

每天在 DriveA上生成两个文件,我想每天将最新文件复制到 DriveB/Folder1/fileA 和 DriveB/Folder2/fileB

任何人都可以为我提供解决方案,我可以根据创建日期复制文件:

  1. 将文件A(创建日期:7月17日(复制到驱动器B/文件夹1
  2. 将文件B(创建日期:7月17日(复制到驱动器B/文件夹2

我确实想出了一个解决方案,但是,它根据"今天的日期"复制文件。

SET usernameID=useremail@domain.com SET usernameDOMAIN=11111111 SET password=pwd@1234 net use "\111.444.222.777FOLDER" /USER:%usernameID% %password% /persistent:no set source=\222.111.333.444FOLDERFOLDER2Report_ net use "\DOMAINstorage2012-0151_hms_uxHadoopLiveDataLandingZoneDWH" /user:usermail@domain.com pwd@1234 /persistent:no set dest=\code1storage2012-0151_hms_uxHadoopLiveDataLandingZoneDWHInputReportReport_ for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%x set today=%MyDate:~0,4%%MyDate:~4,2%%MyDate:~6,2% echo %today% :copy copy "%source%%today%0700.csv" "%dest%%today%0700.csv" IF ERRORLEVEL 0 goto disconnect goto end pause :disconnect goto end pause :end pause

编辑 1:

现在我使用以下命令复制日期 16/Jul/2017 的文件:xcopy C:UsersDesktopreportActualHRC_*.csv C:UsersDownloads /D:07-16-2017 pause

如何动态提供/D:m-d-y?我的意思是,变量应该从系统中获取mdy

提前感谢!

我认为你把事情搞得太复杂了。有一个非常简单的解决方案:xcopy /Y/D.

如果您只键入xcopy /?则可以看到所有选项。 对于/D选项,它说:

复制在指定日期当天或之后更改的文件。 如果未给出日期,则仅复制那些 源时间比目标时间新。

还有robocopy,它也内置在窗口中,提供了更多选项,据称能够使用 UNC 路径名从网络共享复制到网络共享。(因此,无需驱动器映射。

最新更新