因為使用者未養成在 NAS 上進行存取,上週開始要求將C槽以外的資料移到 NAS ,今日進行關閉C槽以外的磁碟,考慮使用者的習慣,擔心關閉後又要求開啟,所以選擇採用修改登錄檔的方式進行隱藏,未來如果臨時需要讀取未轉移的資料時,可以請使用者在位置列輸入原來的磁碟代號即可讀取原資料,免得後續還得要跑一趙.
因為有多台電腦需要修改,所以做了個批次檔來加快工作,有需要的邦友請取用。
*系統碟的分區代號會自動隱藏無法選擇,一舨大多會是C,系統碟不在C也會自動辨視。
@Echo off
fsutil dirty query %SystemDrive%>Nul 2>Nul||(Echo.&Echo.&Echo 注意!動作未完成,請用右鍵以系統管理員身分執行&Echo.&Echo.&Echo.&Echo.&Pause&Exit)
Setlocal ENABLEDELAYEDEXPANSION
Set /a DiskNum=5
Set FullDsik=ABCDEFGHIJKLMNOPQRSTUVWXYZ01
Set FullDsik=!FullDsik:%SystemDrive::=%=!
For %%i In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do (
Set /a DiskNum *=2
Set /a "DiskNum1 = !DiskNum! / 10"
Set %%i=!DiskNum1!
)
:Choice
Cls
Echo.&Echo.&Echo.&Echo.&Echo.&Echo.&Echo.
Echo. ---操作說明---
Echo. 1.選擇要隱藏的磁碟機,選擇後立即修改
Echo. 2.重複選取多個磁碟區代號可以隱藏多個磁碟代號
Echo. 3.若要關閉隱藏選擇代號:「1」
Echo. 4.如要關閉程式可按右上角「X」或選擇「0」離開
Echo. 注意:修改完需要重開機才會生效。
Echo. -------------------------------------------------
Echo 請選擇要隱藏的磁碟機代號:
Echo 要離開程式請選擇「0」
Choice /C %FullDsik%
Set CheckFind=%ErrorLevel%
If %CheckFind% EQU 27 Set DataValue=0&Goto :write
If %CheckFind% EQU 26 Exit /b
Echo.
Set /a "Choice =%CheckFind% - 1"
(ECHO %Check%)|(Findstr \^^^<"%CheckFind%"\^^^>)>Nul&&(
Echo 操作錯誤[重複的磁碟機代號]請重新輸入。
)||(
Set Check=%CheckFind% %Check%
Set /a "DataValue = !DataValue! + !FullDsik:~%Choice%,1!"
Goto :Write
)
Echo 選擇的磁碟機:!FullDsik:~%Choice%,1!
Echo DataValue值: %DataValue%
Pause
Goto :Choice
:write
Reg Add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /f /v "NoDrives" /d !DataValue! /t REG_DWORD
Pause
Goto :Choice
不知這樣隱藏磁碟有甚麽副作用,建議先把磁碟備份。
如果要恢復被隱藏的磁碟,有以下2個方法:
[方法1]用NoDrives Manager
[方法2]在[命令提示字元]裏運行以下的指令,會恢復全部被隱藏的磁碟:
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoDrives"
[備註]被隱藏的磁碟要在重新登入後才會被恢復。
感謝補充
不用客氣,大家一起學習