mklink命令轉移win7系統盤文件夾users和programdata(附xp的方法)
使用mklink命令轉移文件夾清理臃腫的c盤
開機時按F8鍵,出現黑底白字的菜單,默認光標在第一項Repair your computer/修復計算機上,直接按回車。之后會彈出2個提示框,直接點Next或OK即可。就來到了下一界面,單擊最后一項:Command Prompt/命令行,找到上述mklink.bat文件並執行。
(一) 我的轉移過程
不喜歡windows的做法,把所有的用戶和程序數據文件都放在系統盤(xp下是Documents and Settings文件夾,windows7/vista下是users和programdata文件夾),還有就是有些軟件只能安裝在系統盤而根本不給你選擇的余地如Chrome。需要有一種辦法可把上述文件夾弄到非系統分區去,在Linux系統下這不是問題(ln),但直到windows7才有了好點的解決方案,這就是
windows7自帶的mklink.exe程序。
把默認放在c盤的users文件夾轉移到其他分區,這樣就不用擔心使用一段時間后c盤越來越大的問題。
1、還沒安裝windows7時
在安裝Win7的過程中,要求輸入用戶名及密碼的時候,先不如輸入任何信息,按“Shift+F10”呼出DOS窗口,輸入以下命令:
robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ
rmdir "C:\Users" /S /Q
mklink /J "C:\Users" "D:\Users"
2、安裝完系統之后
若還需轉移文件夾,可以進入計算機管理,點擊“Administrator”,選擇屬性,而后在隨后的對話框中去掉“帳戶已禁用”之前的勾,而后關閉"計算機管理器”;
例如要把C:\Program Files\Internet Explorer文件夾轉移到其他盤,則把下列命令編輯輸入新建的bat文件,命名mklink.bat:
robocopy "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer" /e /copyall /xj
rmdir "c:\Program Files\Internet Explorer" /s /q
mklink /j "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer"
rmdir "c:\Program Files\Internet Explorer" /s /q
mklink /j "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer"
我用上述辦法把c盤的Program Files里面所有大於15M的文件夾、ProgramData都轉移到了其他的分區,暫時沒出現任何不良反應。
(二)參數
1、
robocopy:此命令為Windows的“強健文件拷貝”命令
例如:
robocopy “C:\Users”“D:\Users” /E /COPYALL /XJ /XD “C:\Users\Administrator”
/E 表示拷貝文件時包含子目錄(包括空目錄)
/COPYALL 表示拷貝所有文件信息
/XJ 表示不包括Junction points(默認是包括的)
/XD 表示不包括指定的目錄,此處指定目錄為 “C:\Users\Administrator”
2、rmdir:此命令刪除指定目錄
/E 表示拷貝文件時包含子目錄(包括空目錄)
/COPYALL 表示拷貝所有文件信息
/XJ 表示不包括Junction points(默認是包括的)
/XD 表示不包括指定的目錄,此處指定目錄為 “C:\Users\Administrator”
2、rmdir:此命令刪除指定目錄
例如:
rmdir “C:\Users” /S /Q
/S 刪除指定目錄及其中的所有文件,用於刪除目錄樹。
/Q 安靜模式。刪除時不詢問。
3、mklink: 此命令創建符號連接
/S 刪除指定目錄及其中的所有文件,用於刪除目錄樹。
/Q 安靜模式。刪除時不詢問。
3、mklink: 此命令創建符號連接
例如:
mklink /J “C:\Users” “D:\Users”
/J 連接類型為目錄聯接
/J 連接類型為目錄聯接
(三)在windows xp系統下
方法一:通過windows7預安裝環境
方法一:通過windows7預安裝環境
1、創建windows7 setup 啟動盤
用Bootice將U盤MBR和PBR寫為NT6.X的啟動方式,將windows7原始安裝盤
里面的bootmgr提取放在根目錄,同時在根目錄建立boot、sources文件夾並將原始安裝盤中boot目錄下bcd和boot.sdi文件、souces目錄下boot.wim文件提取放入U盤根目錄同名文件夾內。
有現成的bcd和boot.sdi文件的話(例如從現在運行windows7系統中復制的),
使用bootice的bcd文件編輯功能,添加----新建WIM啟動項(ramdisk),啟動磁盤---boot,設備文件\sources\boot.wim,命名windows setup。
不給U盤建立bootmgr引導方式(而是grub引導)或者在xp系統的本機上運行(例如安裝了一鍵ghost或者自行建立gurb引導方式)的話,編輯menu.lst:
title Win7 setup
find --set-root /bootmgr
chainloader /bootmgr
find --set-root /bootmgr
chainloader /bootmgr
一樣可以實現引導。本機運行相應的文件放入本機硬盤(c盤)即可.
若有windows7/vista的原始安裝盤,光盤引導---修復計算機------命令行,就不需要上述步驟了。
2、引導成功后
選擇windows setup,然后
Repair your computer,第一項,最后選擇CommandPrompt進入命令行,執行以下命令:
robocopy "C:\Documents and Settings" "D:\Documents and Settings" /E /COPYALL /XJ
rmdir "C:\Documents and Settings" /S /Q
mklink /J "C:\Documents and Settings" "D:\Documents and Settings"
這樣就把相應的文件夾轉移到了非系統分區。
方法二:xp系統本身下實現
有些程序如chrome瀏覽器或者谷歌拼音輸入法等只能安裝在系統盤(portable版除外),還有些程序(sandbox)、游戲的數據、存檔就是在C:\Documents and Settings文件夾,這時候可以在xp系統下建立目錄聯接實現轉移。
1、復制文件夾
一般的文件夾直接復制到目標磁盤即可,如c:\xyz復制到d盤。
但有些文件可能需要注銷---切換用戶,也還可能出現無法拷貝、刪除的情況。可以通過PE引導進入復制、刪除文件夾。
要使用robocopy命令的話,由於xp下沒有,可以從這里下載,其用法同上,對於那些頑固/系統文件夾可能要到故障恢復控制台、或者安全模式運行,安裝的意義不是很大。
2、junction命令
xp系統下沒有mklink命令,用junction(juntion.exe,下載地址 )命令,效果與‘mklink /j’相同。把juntion.exe復制到某個文件夾(或者C:\WINDOWS\system32)里,在這個文件夾建立批處理文件,輸入命令:
rmdir “C:\xyz” /S /Q
rmdir “C:\xyz” /S /Q
juntion.exe "C:\xyz" "D:\xyz"
這樣就就實現了C:\xyz目錄聯接到D:\xyz的目的,c:\xyz本身只是類似個快捷方式而幾乎不占用c盤空間。xp系統下不像win7那樣,會把c:\xyz顯示出個帶箭頭的文件夾圖標來。但用dir命令查看c盤會發現明顯不同,xyz目錄不再是[dir]而是[junction]了。
這種方法可解決一般文件夾的目錄聯接問題,像C:\Documents and Settings或者C:\Program Files可能還要用到方法一或者結合pe來執行方可。
注:只有NTFS硬盤才可實現目錄聯接。