我有两个网络共享驱动器:让我们称它们为:DriveA 和 DriveB。
每天在 DriveA上生成两个文件,我想每天将最新文件复制到 DriveB/Folder1/fileA 和 DriveB/Folder2/fileB。
任何人都可以为我提供解决方案,我可以根据创建日期复制文件:
- 将文件A(创建日期:7月17日(复制到驱动器B/文件夹1
- 将文件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
?我的意思是,变量应该从系统中获取m
、d
和y
。
提前感谢!
我认为你把事情搞得太复杂了。有一个非常简单的解决方案:xcopy /Y/D
.
如果您只键入xcopy /?
则可以看到所有选项。 对于/D
选项,它说:
复制在指定日期当天或之后更改的文件。 如果未给出日期,则仅复制那些 源时间比目标时间新。
还有robocopy
,它也内置在窗口中,提供了更多选项,据称能够使用 UNC 路径名从网络共享复制到网络共享。(因此,无需驱动器映射。