如果我們不想在指定日期後複製文件,是否有人可以告訴我是否有任何方法。 例如如果我指定日期10-MAY-2017 & 11-MAY-2017和文件夾中有10 & 2017年5月11日的文件。所以如果只想複製10-MAY-2017文件。有什麼辦法嗎?複製文件的XCOPY命令日期選項
0
A
回答
0
手頭的任務,robocopy
是做到這一點的最簡單的方法:
robocopy D:\Source D:\Destination *.* /S /MINAGE:20170510
儘管開關/MINAGE
的名稱,而不是創造,而是最後修改日期被認爲是。
在堅持使用xcopy
情況下,這裏是一個基於xcopy
,做以下步驟的腳本:
- 創建不能被複制的文件列表,因爲這些被修改的給定日期或之後;爲此使用
xcopy /L /F /D:
:/L
意味着列出但不復制,/F
定義爲輸出完全解析的源和目標路徑,並且/D:
可以定義最後修改日期; - 使用
findstr
從所有可用文件(xcopy /L /F
)的列表中篩選出以上所有文件; - 複製純文件目錄樹(
xcopy /T
); - 遍歷過濾文件列表並單獨複製每個文件
copy
;
這是代碼:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
rem // Define constants here:
set "SOURCE=D:\Source" & rem // (source directory)
set "DESTIN=D:\Destination" & rem // (target directory)
set "PATTERN=*.*" & rem // (file pattern)
set "COPYDATE=05-11-2017" & rem /* (last modification date; only files are copied
rem which are modified earlier; check format!) */
set "TEMPFILE=%TEMP%\%~n0_%RANDOM%.tmp" & rem // (list of source files not to copy)
set "COPYLIST=%TEMP%\%~n0_%RANDOM%.lst" & rem // (full list of files to copy)
rem // List files modified on or after given date:
> "%TEMPFILE%" (
for /F "tokens=1 delims=>" %%F in ('
xcopy /L /I /F /D:%COPYDATE% "%SOURCE%\%PATTERN%" "%DESTIN%" ^| find ":"
') do (
set "FILE=%%F"
rem /* Double every `\` as `findstr` uses such as escape character;
rem then append ` -> ` which is used by `xcopy /F` as separator: */
setlocal EnableDelayedExpansion
(echo(!FILE:\=\\!^>)
endlocal
)
)
rem /* List files modified before given date
rem (actually the temporary `%COPYLIST%` file is not really necessary,
rem but it is quite convenient for understanding what is going on; instead
rem the below `for /F` loop could parse the output of this command line): */
xcopy /L /I /F "%SOURCE%\%PATTERN%" "%DESTIN%" | find ":"^
| findstr /V /B /L /I /G:"%TEMPFILE%" > "%COPYLIST%"
rem // Prepare directory tree as `copy` (below) cannot create directories:
xcopy /I /T "%SOURCE%\%PATTERN%" "%DESTIN%" > nul
rem // Copy files from list:
for /F "usebackq tokens=1* delims=>" %%E in ("%COPYLIST%") do (
set "LEFT=%%E" & set "RIGHT=%%F"
setlocal EnableDelayedExpansion
ECHO copy /Y "!LEFT:~,-2!" "!RIGHT:~1!"
endlocal
)
rem // Clean up temporary files:
del "%TEMPFILE%" "%COPYLIST%"
endlocal
exit /B
+0
感謝RobCopy命令,但如果有文件9,10和11.我想複製只有第10日期和這個robocopy命令複製9& 10兩者。 –
+0
你是說你只想複製某個日期的文件?這不是qhat你的問題說... – aschipfl
0
/d:MM-DD-YYYY複製文件改變或在指定日期之後。如果沒有給出日期,則僅複製源時間比目標時間更新的文件。
舉例:XCOPY/d:MM-DD-YYY
相關問題
- 1. 需要Xcopy命令來複制和重命名所有文件
- 2. XCOPY Dos命令從子文件夾複製
- 3. 複製文件與XCopy
- 4. 怎麼寫xcopy命令從項目文件夾只有特定的DLL文件複製到bin文件夾
- 5. 當修改日期與當前日期相同時,批命令複製文件
- 6. 批處理文件XCopy命令
- 7. JVM命令啓動選項複製
- 8. 瞭解xcopy命令
- 9. Dos命令xcopy具有當前日期 - 90天變量
- 10. robocopy或xcopy:複製目錄和文件
- 11. XCOPY循環複製.txt文件
- 12. 將日期動態插入S3的Redshift複製命令的文件名中
- 13. 如何使用rsync命令在linux中複製當前日期文件或特定日期文件?
- 14. postgres複製命令,二進制文件
- 15. 日期選擇器以命令選定的日期
- 16. Powershell命令只複製文本文件
- 17. Java jar文件的命令行選項
- 18. 批量拷貝Xcopy命令
- 19. 如何在複製命令時將日期和時間放在文件名中?
- 20. PowerShell使用xcopy,robocopy或複製項
- 21. git:gitk有「按日期排序」的命令行選項嗎?
- 22. Dockerfile無法複製文件。 (「cp」命令)
- 23. Windows命令行復制文件
- 24. 命令複製命令promt
- 25. Xcopy文件夾選擇
- 26. ELF文件生成命令和選項
- 27. 命令行選項創建文件
- 28. Shell命令日期
- 29. Html日期選擇器下拉命令
- 30. 將日期添加到複製文件
閱讀文檔(β型'XCOPY /'到命令提示符),然後你會發現!考慮切換到['robocopy'](http://ss64.com/nt/robocopy.html)... – aschipfl
如果您堅持使用'xcopy',您可以執行以下操作:'xcopy/L/D: ...「source」「destination」>「tempfile.txt」'(在日期或之後更改列表文件),然後'xcopy/L「source」「destination」| (在日期之前更改的列表文件),然後是「xcopy/T」source「」destination「(準備目錄),然後複製所有文件文件'copylist.txt'中的文件在循環中(見['for/F'](http://ss64.com/nt/for_f.html))... – aschipfl
對不起,它沒有工作。有人可以提供解決方案 –