記一次Win10磁碟空間清理 robocopy mklink

Cong0ks發表於2024-08-25

# 流程說明

透過【robocopy】命令和【mklink】命令聯動的方式進行【使用者目錄】分割槽遷移;

幾個注意事項:

1. 遷移【loki】使用者的時候,需要再PE或者非loki使用者自身進行操作,比如啟用【administrator】

2. 進行刪除使用者目錄為了保證資料內容已經完全同步,磁碟空間足夠的情況下可以先將其重名命,而非直接刪除

# 方法指引

robocopy <源路徑> <目標路徑> /E /ZB /COPYALL /DCOPY:T /LOG:<日誌檔案路徑>
robocopy C:\Users\loki H:\ /E /ZB /COPYALL /LOG:C:\Log\robocopy.log

/E:複製子目錄,包括空目錄
/COPYALL:複製所有檔案資訊(對應 /COPY: DATSOU )
/XJ : 排除連線點和符號連結(用於檔案和資料夾)
/ZB :: 使用可重啟模式;如果訪問被拒絕,使用備份模式

/DCOPY:copyflag[s] :: 複製目錄的內容(預設為/DCOPY:DA)。(copyflags: D=資料,A=屬性,T=時間戳,E= ea, X=跳過所有資料流)。

# 遇到報錯
2024/08/24 09:45:59 錯誤 1921 (0x00000781) 正在給目標目錄新增時間戳

解決方案:增加/XJ引數

原因:
由Application Data資料夾引起的,該資料夾實際上是一個Junction。
當您的Robocopy批處理檔案在Users資料夾中遇到Junction或Symbolic Link時,可能會發生這種情況。
透過在命令中包含/xj開關,可以輕鬆解決此問題。

# 類似linux tail 命令,用於實時檢視日誌檔案同步資料進度

powershell -command "& {Get-Content .\robocopy.log -Tail 5}"
powershell -command "& {gc .\robocopy.log -wait -encoding utf8}"

# 清理原始目錄(需謹慎,確認資料已經完全同步,測試後,清理釋放空間)

rmdir <目錄名> /s /q

# 建立硬連結
mklink /j Users D:Users

參考內容:

https://www.tianjinsc.cn/default/1844615.html

https://blog.csdn.net/qq_41566366/article/details/131128356
https://deepinout.com/computer/computer-top-articles/1694267519_j_what-is-the-robocopy-command-to-copy-folders-and-subfolders.html

# mklink中,/D和/J的區別

https://blog.csdn.net/Solariany/article/details/139099884
https://liam.page/2018/12/10/mklink-in-Windows/

相關文章