因此,我正在編寫一個腳本,使用 RoboCopy 複製一堆文件,並記錄複製的內容。
除了日誌檔案之外,它運行得相當好。它們往往看起來像這樣:
C:\Users\Tech\Documents\desktop.initechscan1.jpgtechscan2.jpgtechscan3.jpgtechscan4.jpgtechscan5.jpgwsus.jpgwsus2.jpgC:\Users\Tech\Documents\My Music\C:\Users\Tech\Documents\My Pictures\C:\Users\Tech\Documents\My Videos\C:\Users\Tech\Documents\My Digital Editions\
正如您所看到的,日誌似乎缺少條目之間的所有空格和分隔符號。我可以做些什麼來解決這個問題嗎?這有點令人沮喪。
我正在使用的命令列是這樣的:
C:\Users\Tech\Desktop>Robocopy.exe C:\Users\Tech\Documents c:\Temp /e /l /b /xj /xf ntuser.* desktop.ini *.lnk /np /njh /log:migratedfiles.txt /v
因為我正在調試,所以我在那裡有/l,這是避免複製所有內容一百萬次的最簡單方法。
答案1
我遇到了同樣的問題,Robocopy 的日誌全部擠在一行中,可讀資訊很少。我也可以在您的程式碼中看到為我解決的問題;您正在從桌面執行 Robocopy 命令。嘗試從您的文件運行它(如果您使用的是bat文件,請移動bat文件,或者如果您直接從cmd運行,請更改命令提示字元中的目錄)
我有不知道為什麼,但對我來說這解決了問題。當我點擊 cd.. 並從 c:\users\ishan\desktop 移動到 cd:\users\ishan 時,robocopy 再次顯示正確的日誌。我自己使用 .bat 檔案作為 robocopy 命令,因此我將其移至我的文件中,從那裡運行它,很快問題就解決了。
希望這也能幫助您解決問題。
答案2
我正在為同樣的問題而苦苦掙扎,並相信我已經找到了答案。您將需要進行一些搜索,但之後應該相當容易
在您的驅動器上搜尋robo
或類似內容C:
。您想要找到RoboCopy.EXE
和的位置RoboCopy.EXE.MUI
。在我使用的 32 位元 Windows 7 測試系統上,我在以下目錄中找到了所述檔案:
C:\Windows\System32\RoboCopy.EXE
C:\Windows\System32\en-US\RoboCopy.EXE.MUI
將這些檔案複製到單獨的目錄,但保留與System32
.例如:
C:\Test_PGM\RoboCopy.EXE
C:\Test_PGM\en-US\RoboCopy.EXE.MUI
現在RoboCopy
從備用目錄運作。例如:
C:\>"C:\Test_PGM\RoboCopy.EXE" "C:\Test_SRC" "C:\Test_DST" /COPYALL
這將提供正確格式的輸出。
答案3
我相信批次檔運行時使用的路徑是關鍵。路徑變數(對我來說)是 %SystemRoot%\system32; %系統根%; ETC。
但是,使用下列指令執行bat檔案的作業: ROBOCOPY.EXE /JOB:jobname.RCJ 的運作方式與 C:\Windows\System32\ROBOCOPY.EXE /JOB:jobname.RCJ 不同
為了使作業正確運行,我在呼叫中指定了完整路徑...我發現了Robocopy.exe 的兩個版本(年齡、產品版本都相同,並且正確執行操作),所以我不知道不指定的路徑是什麼全名有不同版本的可執行檔 - 但它是錯誤的。