MS-DOS 7.x新增了兩個內部指令LOCK及UNLOCK,用來解決某些程式會直接變更16-bit FAT檔案配置表的問題,特別是舊時代的Windows 3.1及MS-DOS 6.22以前的磁碟工具程式,比方說DOS 6.x提供的Undelete指令就不能直接執行。
當MS-DOS 7.x發現使用者執行可能會危及VFAT系統的程式,就會以唯一的鎖定電腦處理!故意當機!你唯一能做的就是重新啟動電腦。
比方講在Windows底下直接執行Norton Utilities的DS目錄排序程式就會看到底下這樣的畫面:
舊的磁碟工具寫入錯誤!
您使用的磁碟工具是為舊版MS-DOS或Windows環境設計的。要是讓工具程式把資料寫入磁碟,得小心檔案可能會被破壞。如果要執行程式但不要把資料寫入磁碟,請按一下 ,要停止執行請按 。當然選「否」啦!
要是用MS-DOS 7.x開機片直接啟動DOS,再執行相同的工具程式,則會看到這樣的畫面:
Windows has disabled direct disk access to protect your long filename.
To override this protection, see the LOCK /? Command for more information.
The system has been halted. Press Ctrl+Alt+Del to restart your computer.
Windows為保護長檔名關掉了直接存取磁碟機制,要改變這個磁碟保護,請參考LOCK /? 指令的說明。現在電腦系統已經中止執行,請按 Ctrl + Alt + Del 鍵重新啟動電腦吧!
如果您確定該磁碟或工作目錄並未使用任何長檔名,而且希望執行Undelete之類的程式(因為資源回收筒無法救回在MS-DOS模式直接刪掉的檔案)就可以用Lock及Unlock來解決這類的問題。新指令的用法如下:
C:\WINDOWS>lock /? Enter
Locks a drive, enabling direct disk access for an application.
LOCK [drive:]
C:\WINDOWS>unlock /? Enter
Unlocks a drive, disabling direct disk access for an application.
UNLOCK [drive:]
C:\WINDOWS>lock c: Enter
WARNING: The LOCK command enables direct disk access by programs
that can CORRUPT file names and/or DESTROY disk data, resulting in the
loss of files on your disk.
Are you sure (Y/N)?y
C:\WINDOWS>_
* Lock可以鎖定使用者指定的磁碟,並打開該磁碟直接存取FAT功能讓應用程式直接操作硬碟。
* Unlock可以鎖開使用者指定的磁碟,並關閉應用程式直接存取該磁碟FAT的功能。使用Lock之後請務必記得再執行Unlock。
由於Lock和Unlock必須成對使用,建議您寫一個簡單的批次檔來執行所需的磁碟工具程式,譬如底下的DIRSORT.BAT:
@echo off
lock c:
ds %1
unlock c: