想象,我有2個文件夾:批處理文件,以1天之前複製文件並沒有更多的
- C:\ FolderData(會每天更新新的遞增文件)
- C:\ FolderTemp(需要從一天只有文件執行,不包括小時/時間戳之前)
的FolderData將收到的文件名,如果不日期將是平等的,如:
- SYS_PURCHASES_20170612.xls
- SYS_PURCHASES_20170613.xls
- SYS_PURCHASES_20170614.xls
如果我今天運行 .bat文件,我需要的是只有SYS_PURCHASES_20170613.xls被複制到FolderTemp。
我嘗試使用robocopy
但顯然不能接收MINAGE相同的值,MAXAGE
robocopy "C:\FolderData" "C:\FolderTemp" /minage:1 /maxage:1
另外,如果我嘗試:
robocopy "C:\FolderData" "C:\FolderTemp" /minage:1 /maxage:2
它將帶均爲SYS_PURCHASES_20170612.xls和SYS_PURCHASES_20170613.xls,這是不是我需要的。
除此之外,我嘗試使用forfiles
,但也無濟於事。
forfiles /p C:\FolderData /D -1 /C "/C /copy /y @file C:\FolderTemp"
甚至
forfiles /p C:\FolderData /D -1 /C "/C /copy /y C:\FolderData\@file C:\FolderTemp"
和其他變量,但它返回沿線的東西「系統無法返回指定的文件」時代的文件數量的文件夾中。
注意,有涉及波紋管其他進程應該被忽略,這只是我想不通怎麼辦上述步驟。
所有步驟我的批處理提交需求做:
- 從文件夾1文件複製從1天到文件夾2之前(我需要什麼幫助)
- 所有文件從文件夾2刪除過去的9個數字(將刪除的日期,使用上this solution循環),因此文件將SYS_PURCHASES.xls
- 移動和從文件夾2替換文件folder3(使用簡單的
move /y
)
這是'/最大生存週期:1',不'/ maxage1';但我想你需要'/ maxage:2'。 'forfiles'不能工作,因爲'/ D -1'表示要取得一天或更長時間的文件(或者,正確地說,昨天修改或eralier)。 – aschipfl
實際上有一個使用'forfiles'的解決方法 - 看到這篇文章:[FORFILES date -after-(cmd文件中的日期計算)](https://stackoverflow.com/a/36585535) – aschipfl
@aschipfl the' maxage1'和'maxage1'是我的問題上的拼寫錯誤,將修復它,然後閱讀您發送的帖子,ty。 – mrbTT