玩轉(zhuǎn)WIN7的MKLINK
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
引言:換了新電腦,終于再次使用上啦WIN7 ,經(jīng)過(guò)一個(gè)周每天重裝N次系統(tǒng),終于弄好一個(gè)像樣的系統(tǒng)啦。由于使用rt7lite對(duì)WIN7SP1官方整合包進(jìn)行了適當(dāng)精簡(jiǎn),所以最終系統(tǒng)的穩(wěn)定性還得經(jīng)過(guò)一段時(shí)間的使用才能知道。其中在安裝的時(shí)候,僅僅為系統(tǒng)盤(C盤)分配了10G的磁盤空間,而裝完后就占用了8G以上空間,再想裝上工作軟件,就明顯不足了。于是網(wǎng)搜方法對(duì)系統(tǒng)進(jìn)行再度的減肥的時(shí)候,發(fā)現(xiàn)了WIN7的一個(gè)新工具【MKLINK】,能夠?qū)ο到y(tǒng)文件或文件夾進(jìn)行鏈接或聯(lián)接。這可是個(gè)好工具,所以對(duì)其功能進(jìn)行一番試用,以下是事后的小小總結(jié),提供給有需要的朋友。 基本介紹:在CMD命令行輸入mklink /?,能獲得以下幫助: 創(chuàng)建符號(hào)鏈接。 MKLINK [[/D] | [/H] | [/J]] Link Target /D 創(chuàng)建目錄符號(hào)鏈接。默認(rèn)為文件 在此,我僅僅對(duì)創(chuàng)建目錄的鏈接進(jìn)行試用,所以以下討論的皆是有關(guān)目錄方面的。 參數(shù)/D 與 /J 的區(qū)別:在幫助里面,這兩個(gè)參數(shù)的解釋,一個(gè)是“鏈接”,一個(gè)是“聯(lián)接”,僅僅一字之差。字面上的解釋或系統(tǒng)層次上的理論解釋,我無(wú)法深究,只好通過(guò)實(shí)踐來(lái)比較兩者的區(qū)別。 使用/d參數(shù)命令創(chuàng)建一個(gè)鏈接: mklink /d "Temp.link" "F:\SystemCache\Temp" 使用/J參數(shù)命令創(chuàng)建一個(gè)聯(lián)接: mklink /J "Temp.link" "F:\SystemCache\Temp" 文件夾屬性,顯示如圖所示: 其中一眼就可以看到的區(qū)別就是,使用/D參數(shù)創(chuàng)建的“鏈接”,屬性里面多了一項(xiàng)“快捷方式”選項(xiàng)卡。 同時(shí)在CMD命令行里面DIR顯示目錄的時(shí)候,顯示的也是有所區(qū)別的,如圖: 其中參數(shù)/D對(duì)應(yīng)的是 表面的區(qū)別非常明顯啦,而我們關(guān)注的是在實(shí)際操作過(guò)程中,兩者又都有啥區(qū)別呢?首先我們對(duì)于一個(gè)文件夾的操作不外乎“復(fù)制,剪切,刪除”,所以依次對(duì)兩個(gè)文件夾進(jìn)行測(cè)試,結(jié)果如下。 【復(fù)制】的測(cè)試為:將兩個(gè)文件夾同時(shí)復(fù)制,并在當(dāng)前文件夾粘帖,最終結(jié)果如下:
結(jié)論: 無(wú)論作為鏈接還是聯(lián)接,平常的復(fù)制操作都是對(duì)"源目錄" 的進(jìn)行拷貝,而不是復(fù)制自身的鏈接或聯(lián)接屬性。要想實(shí)現(xiàn)復(fù)制自身,而不是所指向的目錄,可以使用網(wǎng)上介紹的方法,即在命令行下使用Xcopy 帶/B參數(shù)來(lái)進(jìn)行復(fù)制。 【剪切】的測(cè)試為:同時(shí)剪切兩個(gè)文件夾,粘貼到D 盤。效果如下:
結(jié)論: 對(duì)于鏈接后的文件夾,無(wú)法對(duì)其進(jìn)行剪切操作。而聯(lián)接的文件夾可以被移動(dòng),但是不知道有啥意義。(此處對(duì)聯(lián)接后文件夾的測(cè)試不是很嚴(yán)謹(jǐn),留待好心的朋友指正) 【刪除】的測(cè)試:(重新創(chuàng)建后)對(duì)兩個(gè)文件夾直接右鍵刪除。
正式使用:花了大篇幅介紹了兩個(gè)參數(shù)的區(qū)別,或許有點(diǎn)多余,但是在實(shí)際決定要使用哪個(gè)參數(shù)創(chuàng)建時(shí),多少有了些直觀的參考。在這里我個(gè)人使用的是/D參數(shù),因?yàn)樗嗔艘粋€(gè)“快捷方式”標(biāo)簽方便“打開文件夾位置”,僅此而已。 同樣網(wǎng)上也有很多關(guān)于如何使用MKLINK來(lái)轉(zhuǎn)移win7文件夾位置的文章,大家可以一起參考: 1. 移動(dòng)Windows 7/Vista中用戶文件夾的位置2. Win7/Vista 巧用 mklink.exe 實(shí)現(xiàn)系統(tǒng)和用戶文件的分區(qū)存放3. 移動(dòng)Windows7中winsxs文件夾位置 在這里同樣需要用到一個(gè)小工具:PendMoves.zip,將其解壓放入系統(tǒng)盤的system32,就能在CMD命令行中任意調(diào)用了,當(dāng)然也可以直接CD進(jìn)入解壓后的文件夾,再使用也可以。
這個(gè)文件夾我認(rèn)為是比較安全的,至少操作失敗不會(huì)造成系統(tǒng)崩潰。 其中系統(tǒng)里面一共有兩個(gè)TEMP變量,一個(gè)是用戶臨時(shí)變量,一個(gè)是系統(tǒng)臨時(shí)變量。首先就是按照參考鏈接3里面學(xué)到的思想,進(jìn)行文件轉(zhuǎn)移。使用如下代碼新建鏈接: @mklink /d "C:\Users\Administrator\AppData\Local\Temp.link" "F:\SystemCache\Temp" @mklink /d "C:\Windows\Temp.link" "F:\SystemCache\Temp" 然后就是使用Pendmoves里面的Movefile工具,在重啟之后重命名或刪除文件夾。 @movefile "C:\Users\Administrator\AppData\Local\Temp" "" @movefile "C:\Windows\Temp" "" 因?yàn)槭桥R時(shí)文件,所以第一句就是直接刪除文件夾,然后再把建立的鏈接重命名為Temp即可。
這里要說(shuō)明一點(diǎn)就是,我并不是將整個(gè)Administrator的目錄進(jìn)行轉(zhuǎn)移,而是僅僅對(duì)里面的AppData文件夾有針對(duì)的轉(zhuǎn)移。原因有二,一個(gè)是我不需要保存Administrator根目錄下的DAT文件,二個(gè)是這個(gè)目錄里面有很多文件夾也是聯(lián)接式的文件夾。一旦轉(zhuǎn)移整個(gè)文件夾,從上面的區(qū)別中,我們知道,符號(hào)本身將無(wú)法通過(guò)普通復(fù)制一個(gè)副本,這也就可能造成未知的系統(tǒng)問(wèn)題。于是,我就對(duì)AppData目錄下的單個(gè)文件夾進(jìn)行轉(zhuǎn)移。 同樣,因?yàn)锳ppData目錄下的Local文件夾內(nèi)也有幾個(gè)是聯(lián)接式的文件夾,所以再次單獨(dú)的將其分類開,分別進(jìn)行轉(zhuǎn)移。 第一步:將Local下Microsoft文件夾,LocalLow和Roaming的文件全部復(fù)制到目標(biāo)路徑中;(在此可能需要獲取“管理員權(quán)限”,方法請(qǐng)網(wǎng)搜。) 第二步:再執(zhí)行相應(yīng)代碼進(jìn)行轉(zhuǎn)移。 以下是AppData下,沒(méi)有特殊文件夾的相應(yīng)轉(zhuǎn)移批處理代碼: @mklink /d "C:\Users\Administrator\AppData\LocalLow.link" "F:\SystemCache\LocalLow" @movefile "C:\Users\Administrator\AppData\LocalLow" "C:\Users\Administrator\AppData\LocalLowMoved" @mklink /d "C:\Users\Administrator\AppData\Roaming.link" "F:\SystemCache\Roaming" @movefile "C:\Users\Administrator\AppData\Roaming" "C:\Users\Administrator\AppData\RoamingMoved" 以下是AppData目錄下的Local文件夾的轉(zhuǎn)移代碼,僅僅對(duì)Microsoft文件夾轉(zhuǎn)移。 @mklink /d "C:\Users\Administrator\AppData\Local\Microsoft.link" "F:\SystemCache\Local\Microsoft" @movefile "C:\Users\Administrator\AppData\Local\Microsoft" "C:\Users\Administrator\AppData\Local\MicrosoftMoved"
第一步:將Microsoft文件夾的文件全部復(fù)制到目標(biāo)路徑中;(在此可能需要獲取“管理員權(quán)限”,方法請(qǐng)網(wǎng)搜。) 第二步:再執(zhí)行相應(yīng)代碼進(jìn)行轉(zhuǎn)移 @mklink /d "C:\ProgramData\Microsoft.link" "F:\ProgramData\Microsoft" @movefile "C:\ProgramData\Microsoft" "C:\ProgramData\MicrosoftMoved"
個(gè)人經(jīng)驗(yàn):在整個(gè)轉(zhuǎn)移此文件夾之后,會(huì)使得“云端”無(wú)法正常捕獲緩存。即,無(wú)法正常完成手動(dòng)安裝到云端,能夠使用,但是不正常! 所以,這里提供兩個(gè)版本。所有版本的第一步:都是將文件夾內(nèi)的文件全部復(fù)制到目標(biāo)路徑中。 整個(gè)目錄轉(zhuǎn)移: @mklink /d "C:\Program Files.link" "D:\Program Files C" @movefile "C:\Program Files" "C:\Program Files Moved" 分開轉(zhuǎn)移: @mklink /j "C:\Program Files\Common Files" "D:\Program Files C\Common Files" 說(shuō)明:因?yàn)檫@個(gè)文件夾里面的目錄眾多,并且隨著個(gè)人安裝的軟件不同,數(shù)量各不相同,所以一般不推薦轉(zhuǎn)移此文件夾。 額外補(bǔ)充:一旦使用Movefile創(chuàng)建任務(wù)計(jì)劃之后,可以使用Pendmoves檢查總共創(chuàng)建的任務(wù)數(shù)。這里額外補(bǔ)充一個(gè)內(nèi)容就是:當(dāng)你創(chuàng)建的計(jì)劃是錯(cuò)誤的,比如Movefile使用的路徑有誤,或者你想取消Movefile計(jì)劃等等,可以使用一下方法: 打開注冊(cè)表,查找路徑“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager”,刪除"PendingFileRenameOperations"的值就可以了。 以下是官方原理說(shuō)明:http://technet.microsoft.com/en-us/magazine/2009.06.utilityspotlight.aspx 不過(guò)里面講解的注冊(cè)表路徑不準(zhǔn)確。 該文章在 2012/12/31 10:22:24 編輯過(guò) |
相關(guān)文章
正在查詢... |