我需要創建一個批處理文件,每天備份10個文件到我們的服務器上。爲了提供一個簡短的背景,我們使用支付系統,每天將這些文件分發出去,我們希望確保這些文件每天都上傳到服務器上,但是,這些文件的文件名會每天都改變,這意味着覆蓋可能不會工作。但我可以自信地創建一個批處理文件來進行復制和覆蓋,但我不確定如何用新文件名的10批文件覆蓋這些文件。批處理文件複製並覆蓋文件,不管文件名是什麼
你能提供幫助嗎?
親切的問候,
廣告
我需要創建一個批處理文件,每天備份10個文件到我們的服務器上。爲了提供一個簡短的背景,我們使用支付系統,每天將這些文件分發出去,我們希望確保這些文件每天都上傳到服務器上,但是,這些文件的文件名會每天都改變,這意味着覆蓋可能不會工作。但我可以自信地創建一個批處理文件來進行復制和覆蓋,但我不確定如何用新文件名的10批文件覆蓋這些文件。批處理文件複製並覆蓋文件,不管文件名是什麼
你能提供幫助嗎?
親切的問候,
廣告
:: this deletes 10 files named "file1.txt" to "file10.txt"
for /L %%a in (1,1,10) do del R:\Test\file%%a.txt
:: this takes ALL of the files matching the mask and copies them to
:: "file*.txt" at the destination
for /f "tokens=1*delims=: " %%a in (
'dir /b /a-d "C:\Users\Username\Desktop\Test*" ^|findstr /n /r "." ') do (
echo xcopy "C:\Users\Username\Desktop\%%b" "R:\test\file%%a.txt"
)
的第一個命令應該是顯而易見的。僅
第二簡單地列出源目錄,名稱,無匹配「測試*」文件的數據夾並指示輸出到findstr
其中/n
號每一行匹配/r
正則表達式「」 (這將是所有。)
的findstr
輸出將是以下形式的
1:測試one.xyz
for
將tokenise結果,%%a
接收部分之前分隔符序列和%%b
之後的部分。分隔符分別設置爲:
和空間; findstr
計數每個作爲分隔符,以及作爲一個分隔符字符串。
結果是echo
ED,以確保所建議的行動是報道,不執行使得發生任何損壞之前,可以檢測到任何錯誤。
激活copy
,只需刪除echo
關鍵字。
請注意,這些文件仍保留在源代碼中,因爲您尚未提供關於如何進一步處理它們的任何線索。如果文件被留在原地,他們會在下次運行復制以及 - 在for
循環只會繼續計數...
for /f "tokens=1*delims=: " %%a in (
'dir /b /a-d /o-d "C:\Users\Username\Desktop\Test*" ^|findstr /n /r "." '
) do if %%s leq 10 (
echo copy "C:\Users\Username\Desktop\%%b" "R:\test\"
)
將[呼應命令] copy
最新從源目錄到目的地的10個文件。
應該很明顯如何將10
更改爲其他值。
操縱實際的目錄名稱和維護源目錄和目標目錄 - 你的事情。
嗨, 對不起,我應該更清楚。 所以備份文件會自動刪除在每一天結束的最古老的,所以可以很容易理解,如果備份吐出來,從14日至6月21號文件,然後在一天結束的第14屆會除去。從理論上講,我只需要備份最新的文件,但我不確定如何使用文件名永遠不會相同。 我希望這有助於:) – Admaine
@Admaine如果你只需要最新的文件,你可能想看看'forfiles'。示例如何刪除所有超過10天的文件:'forfiles -p「C:\ backups」/ D -10/C「cmd/c del @path」 – Regejok
如果您只是想要最近的'n'文件,那麼在'dir'命令中添加'/ od'命令,然後按照反向日期的順序提供列表,如果你想限制到'n'文件被傳輸,在條目之前添加'if %% a leq n' '副本',以便副本僅在序列號小於或等於指定數量的情況下進行。然後你可能不需要改變文件名,所以你可以簡單地從目標文件名中除去'filename %% a.txt',只留下目錄名。 – Magoo
也許吧。通過將您的代碼編輯到您的帖子中向我們顯示。 – Magoo
這是我與然而工作的基本代碼,我急轉直下實現的文件(與千變萬化的文件名)需要重寫每個夜晚後: XCOPY C:\ Users \用戶名\桌面\測試* R: \測試*/Y/Q/S – Admaine
@Admaine糾正我,如果我誤解了,但你不能簡單地刪除舊的備份,然後複製文件?如果不是,名稱取決於任何事情/它們是否可以預測? – Regejok