LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

玩轉WIN7的MKLINK

admin
2012年12月31日 10:22 本文熱度 4425

引言:


換了新電腦,終于再次使用上啦WIN7 ,經過一個周每天重裝N次系統,終于弄好一個像樣的系統啦。由于使用rt7lite對WIN7SP1官方整合包進行了適當精簡,所以最終系統的穩定性還得經過一段時間的使用才能知道。其中在安裝的時候,僅僅為系統盤(C盤)分配了10G的磁盤空間,而裝完后就占用了8G以上空間,再想裝上工作軟件,就明顯不足了。于是網搜方法對系統進行再度的減肥的時候,發現了WIN7的一個新工具【MKLINK】,能夠對系統文件或文件夾進行鏈接或聯接。這可是個好工具,所以對其功能進行一番試用,以下是事后的小小總結,提供給有需要的朋友。


基本介紹:


在CMD命令行輸入mklink /?,能獲得以下幫助:


創建符號鏈接。


MKLINK [[/D] | [/H] | [/J]] Link Target


        /D      創建目錄符號鏈接。默認為文件
                符號鏈接。
        /H      創建硬鏈接,而不是符號鏈接。
        /J      創建目錄聯接。
        Link    指定新的符號鏈接名稱。
        Target  指定新鏈接引用的路徑
                (相對或絕對)。


在此,我僅僅對創建目錄的鏈接進行試用,所以以下討論的皆是有關目錄方面的。


參數/D 與 /J 的區別:


在幫助里面,這兩個參數的解釋,一個是“鏈接”,一個是“聯接”,僅僅一字之差。字面上的解釋或系統層次上的理論解釋,我無法深究,只好通過實踐來比較兩者的區別。


使用/d參數命令創建一個鏈接:


mklink /d "Temp.link" "F:\SystemCache\Temp"


文件夾屬性,顯示如圖所示:mklink的符號鏈接


使用/J參數命令創建一個聯接:


mklink /J "Temp.link" "F:\SystemCache\Temp"


文件夾屬性,顯示如圖所示:


mklink文件夾聯接


其中一眼就可以看到的區別就是,使用/D參數創建的“鏈接”,屬性里面多了一項“快捷方式”選項卡。


同時在CMD命令行里面DIR顯示目錄的時候,顯示的也是有所區別的,如圖:


JUNCTION和SYMLINKD 其中參數/D對應的是而參數/J對應的是。網搜的時候,網上有人留意到微軟系統自己使用的都是,在此繼續留待考證。


表面的區別非常明顯啦,而我們關注的是在實際操作過程中,兩者又都有啥區別呢?首先我們對于一個文件夾的操作不外乎“復制,剪切,刪除”,所以依次對兩個文件夾進行測試,結果如下。


【復制】的測試為:將兩個文件夾同時復制,并在當前文件夾粘帖,最終結果如下:


[By:AsionTang]MKLINK復制測試



  • 使用/D參數的文件夾,成功的在當前文件夾創建了一個testD的副本

  • 使用/J 參數的文件夾,復制N次,在當前文件夾沒有任何效果,進入源目錄的時候,發現創建的副本都在“源目錄”里面

 結論:


無論作為鏈接還是聯接,平常的復制操作都是對"源目錄" 的進行拷貝,而不是復制自身的鏈接或聯接屬性。要想實現復制自身,而不是所指向的目錄,可以使用網上介紹的方法,即在命令行下使用Xcopy 帶/B參數來進行復制


【剪切】的測試為:同時剪切兩個文件夾,粘貼到D 盤。效果如下:



  • 使用/D參數的文件夾:沒有任何效果。

  • 使用/J 參數的文件夾:當前盤的“聯接文件夾”被刪除,而卻在D盤創建了一個同名的普通文件夾,文件夾內無文件

結論:


對于鏈接后的文件夾,無法對其進行剪切操作。而聯接的文件夾可以被移動,但是不知道有啥意義。(此處對聯接后文件夾的測試不是很嚴謹,留待好心的朋友指正)


【刪除】的測試:(重新創建后)對兩個文件夾直接右鍵刪除。



  • 使用/D參數的文件夾:當前鏈接文件夾被刪除,源目錄不受影響。

  • 使用/J 參數的文件夾:當前聯接文件夾被刪除,源目錄不受影響。

正式使用:


花了大篇幅介紹了兩個參數的區別,或許有點多余,但是在實際決定要使用哪個參數創建時,多少有了些直觀的參考。在這里我個人使用的是/D參數,因為它多了一個“快捷方式”標簽方便“打開文件夾位置”,僅此而已。


同樣網上也有很多關于如何使用MKLINK來轉移win7文件夾位置的文章,大家可以一起參考:


1. 移動Windows 7/Vista中用戶文件夾的位置


2. Win7/Vista 巧用 mklink.exe 實現系統和用戶文件的分區存放


3. 移動Windows7中winsxs文件夾位置


在這里同樣需要用到一個小工具:PendMoves.zip,將其解壓放入系統盤的system32,就能在CMD命令行中任意調用了,當然也可以直接CD進入解壓后的文件夾,再使用也可以。



  • :移動系統的TEMP文件夾。

這個文件夾我認為是比較安全的,至少操作失敗不會造成系統崩潰。


其中系統里面一共有兩個TEMP變量,一個是用戶臨時變量,一個是系統臨時變量。首先就是按照參考鏈接3里面學到的思想,進行文件轉移。使用如下代碼新建鏈接:


@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:\Users\Administrator\AppData\Local\Temp.link" "C:\Users\Administrator\AppData\Local\Temp"


@movefile "C:\Windows\Temp" ""
@movefile "C:\Windows\Temp.link" "C:\Windows\Temp"


因為是臨時文件,所以第一句就是直接刪除文件夾,然后再把建立的鏈接重命名為Temp即可。



  • :對用戶AppData文件夾數據進行轉移。

這里要說明一點就是,我并不是將整個Administrator的目錄進行轉移,而是僅僅對里面的AppData文件夾有針對的轉移。原因有二,一個是我不需要保存Administrator根目錄下的DAT文件,二個是這個目錄里面有很多文件夾也是聯接式的文件夾。一旦轉移整個文件夾,從上面的區別中,我們知道,符號本身將無法通過普通復制一個副本,這也就可能造成未知的系統問題。于是,我就對AppData目錄下的單個文件夾進行轉移。


同樣,因為AppData目錄下的Local文件夾內也有幾個是聯接式的文件夾,所以再次單獨的將其分類開,分別進行轉移。


第一步:將Local下Microsoft文件夾,LocalLow和Roaming的文件全部復制到目標路徑中;(在此可能需要獲取“管理員權限”,方法請網搜。)


第二步:再執行相應代碼進行轉移


以下是AppData下,沒有特殊文件夾的相應轉移批處理代碼:


@mklink /d "C:\Users\Administrator\AppData\LocalLow.link" "F:\SystemCache\LocalLow"


@movefile "C:\Users\Administrator\AppData\LocalLow" "C:\Users\Administrator\AppData\LocalLowMoved"
@movefile "C:\Users\Administrator\AppData\LocalLow.link" "C:\Users\Administrator\AppData\LocalLow"


@mklink /d "C:\Users\Administrator\AppData\Roaming.link" "F:\SystemCache\Roaming"


@movefile "C:\Users\Administrator\AppData\Roaming" "C:\Users\Administrator\AppData\RoamingMoved"
@movefile "C:\Users\Administrator\AppData\Roaming.link" "C:\Users\Administrator\AppData\Roaming"


以下是AppData目錄下的Local文件夾的轉移代碼,僅僅對Microsoft文件夾轉移。


@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"
@movefile "C:\Users\Administrator\AppData\Local\Microsoft.link" "C:\Users\Administrator\AppData\Local\Microsoft"



  • :轉移ProgramData目錄下的Microsoft文件夾。

第一步:將Microsoft文件夾的文件全部復制到目標路徑中;(在此可能需要獲取“管理員權限”,方法請網搜。)


第二步:再執行相應代碼進行轉移


@mklink /d "C:\ProgramData\Microsoft.link" "F:\ProgramData\Microsoft"


@movefile "C:\ProgramData\Microsoft" "C:\ProgramData\MicrosoftMoved"
@movefile "C:\ProgramData\Microsoft.link" "C:\ProgramData\Microsoft"



  • :轉移Program Files文件夾。

個人經驗:在整個轉移此文件夾之后,會使得“云端”無法正常捕獲緩存。即,無法正常完成手動安裝到云端,能夠使用,但是不正常!


所以,這里提供兩個版本。所有版本的第一步:都是將文件夾內的文件全部復制到目標路徑中。


整個目錄轉移:


@mklink /d "C:\Program Files.link" "D:\Program Files C"


@movefile "C:\Program Files" "C:\Program Files Moved"
@movefile "C:\Program Files.link" "C:\Program Files"


分開轉移:


@mklink /j "C:\Program Files\Common Files" "D:\Program Files C\Common Files"
@mklink /j "C:\Program Files\InstallShield Installation Information" "D:\Program Files C\InstallShield Installation Information"
@mklink /j "C:\Program Files\Internet Explorer" "D:\Program Files C\Internet Explorer"
@mklink /j "C:\Program Files\Reference Assemblies" "D:\Program Files C\Reference Assemblies"
@mklink /j "C:\Program Files\Windows Defender" "D:\Program Files C\Windows Defender"
@mklink /j "C:\Program Files\Windows Journal" "D:\Program Files C\Windows Journal"
@mklink /j "C:\Program Files\Windows Mail" "D:\Program Files C\Windows Mail"
@mklink /j "C:\Program Files\Windows Media Player" "D:\Program Files C\Windows Media Player"
@mklink /j "C:\Program Files\Windows NT" "D:\Program Files C\Windows NT"
@mklink /j "C:\Program Files\Windows Photo Viewer" "D:\Program Files C\Windows Photo Viewer"
@mklink /j "C:\Program Files\Windows Portable Devices" "D:\Program Files C\Windows Portable Devices"


說明:因為這個文件夾里面的目錄眾多,并且隨著個人安裝的軟件不同,數量各不相同,所以一般不推薦轉移此文件夾


額外補充:


一旦使用Movefile創建任務計劃之后,可以使用Pendmoves檢查總共創建的任務數。這里額外補充一個內容就是:當你創建的計劃是錯誤的,比如Movefile使用的路徑有誤,或者你想取消Movefile計劃等等,可以使用一下方法:


打開注冊表,查找路徑“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager”,刪除"PendingFileRenameOperations"的值就可以了。


以下是官方原理說明:http://technet.microsoft.com/en-us/magazine/2009.06.utilityspotlight.aspx


不過里面講解的注冊表路徑不準確。


該文章在 2012/12/31 10:22:24 編輯過
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
伊人久久大香线蕉aⅴ一区 三级国产99在线 | 亚洲国产综合精品中文第一 | 一区二区国产欧美在线视频 | 日本性爱视频观看久久 | 欧洲日韩一区二区三区 | 欧美一区二区视频三区 |