在Windows 95的MS-DOS視窗環境底下,MS-DOS 7.x將能直接支援VFAT長檔名、強化的dir、cd、copy、xcopy等DOS指令以及start、lock、unlock等新指令,比方說:
C:\>copy xmas95.doc "Merry Christmas for Windows 95.doc" Enter
(把 xmas95.doc 複製為 Merry Christmas... 長檔名)
C:\WINDOWS\SPOOL\FAX>cd... Enter ← 直接回到上兩層的資料夾
C:\WINDOWS>_
C:\WINDOWS\SPOOL\FAX\BRENT>cd.... Enter ← 退回到上三層的資料夾
C:\WINDOWS>_
第一個copy指令會把舊的MS-DOS短檔名“ xmas95.doc”直接拷貝到長檔名“Merry christmas…doc”,另一個更直接而且簡單易懂的長檔案名稱。
請記得在MS-DOS提示號使用長檔名的時候,長檔名前後必須用一對 “ ” 雙引號括住,例如:cd “program files”。
我們知道cd.. 可以回到上層資料夾,因此3個點的cd... 可回到上兩層目錄,而4個點的cd.... 可回到上三層目錄。但是如果用Windows開機片直接啟動MS-DOS 7.x,就沒有這些特異功能啦,而且也不支援長檔名!
期待已久的dir指令,在MS-DOS 7.x版終於追加了可以同時列出檔案所有詳細資訊的 /V參數!由於文字畫面只有80行寬,無法將完整資料顯示在一行以內,因此我們利用DOS的 > 轉向指令把dir輸出轉向到list.txt文字檔,請輸入底下的指令:
C:\>dir /v > list.txt Enter ← 把檔案的詳細資料印到 list.txt檔!
C:\>edit list.txt Enter ← 顯示 list.txt 檔案內容,也可以用記事本閱讀這個檔案
(底下是 LIST.TXT 文件的內容:)
Volume in drive C is WINDOWS 95
Volume Serial Number is 1577-1CFC
Directory of C:\
File Name Size Allocated Modified Accessed Attrib
(檔案名稱 檔案大小 實際配置空間 修改日期時間 存取日期 檔案屬性 長檔名)
FONTS <DIR> 12-20-95 21:58 12-20-95 D FONTS
SCANDISK LOG 1,548 16,384 01-31-96 9:14 01-31-96 A SCANDISK.LOG
PUBLISH <DIR> 12-20-95 23:43 12-20-95 D PUBLISH
COMMAND DOS 54,645 65,536 05-31-94 6:22 01-15-96 A COMMAND.DOS
LOGO SYS 129,078 131,072 10-27-95 0:00 01-28-96 A LOGO.SYS
AUTOEXEC BAT 110 16,384 01-15-96 15:49 02-10-96 A AUTOEXEC.BAT
DRVSPACE BIN 64,135 65,536 10-27-95 0:00 10-27-95 A DRVSPACE.BIN
AUTOEXEC DOS 110 16,384 01-03-96 16:31 01-15-96 A AUTOEXEC.DOS
: : :
: : :
PROGRA~1 <DIR> 12-20-95 22:38 12-20-95 R D Program Files
MSINPUT <DIR> 12-20-95 22:39 12-20-95 D MSINPUT
MSOFFICE <DIR> 01-08-96 18:00 01-08-96 D MSOffice
MAGAZINE <DIR> 12-20-95 23:46 12-20-95 D MAGAZINE
SETUPLOG TXT 1,464 16,384 01-31-96 9:16 01-31-96 A SETUPLOG.TXT
CONFIG DOS 35 16,384 01-08-96 15:34 02-06-96 A CONFIG.DOS
COMMAND COM 93,272 98,304 11-07-95 0:00 02-09-96 A COMMAND.COM
WINDOWS <DIR> 01-08-96 19:28 D WINDOWS
MYDOCU~1 <DIR> 01-08-96 22:18 01-08-96 D My Documents
CONFIG SYS 35 16,384 01-27-96 15:57 02-10-96 A CONFIG.SYS
CONFIG WIN 35 16,384 01-31-96 9:16 01-31-96 A CONFIG.WIN
17 file(s) 468,552 bytes
15 dir(s) 655,360 bytes allocated ← 新增的資訊
441,270,272 bytes free
1,073,168,384 bytes total disk space, 58% in use ← 新增的資訊
・File Name:以傳統的8.3格式列出檔案名稱。
・Size:顯示檔案大小,單位是bytes(每個位元組為8-bit)。
・Allocated:列出檔案實際佔用的硬碟空間。其實DOS配置給檔案的硬碟空間是以Cluster磁群為基本單位,即使檔案只有1 byte也要佔用一個磁群。
・Modified:列出檔案建立或最近一次修改的日期和時間。
・Accessed:顯示檔案最近一次的存取日期。這是新增加的欄位,可用來追蹤檔案有沒有長蜘蛛網?啊說錯了,不是啦!是用來表示檔案有多久未曾使用了。
・Attrib:列出檔案屬性。R表示唯讀、A:保存、S:系統、H:隱藏、D則表示目錄。
dir /v指令同時在檔案列表後面加上了幾個重要資訊:
17 file(s) 468,552 bytes
15 dir(s) 655,360 bytes allocated
441,270,272 bytes free
1,073,168,384 bytes total disk space, 58% in use
其實17個檔案只要468,552個位元組(除1024即457KB)卻佔用了655,360 bytes,無形中浪費了 186,808 bytes,約182KB,空間使用只有71% 左右,閒置率高達29%!換句話說1GB硬碟也許只能存放800MB的資料,有200MB被硬碟磁群的配置方式閒置掉而無法利用!
通常DOS的每個Cluster磁群可能是4096、8192、16384、32768 bytes這些大小。像上面的CONFIG.SYS只有35 bytes卻要佔用16,384 bytes也就是16KB!不滿一個磁群的檔案還是得佔用整個磁群,無法把磁群剩餘空間分配給其他檔案。
Windows 95並未變更FAT結構,因此VFAT也繼承了FAT的所有缺點,磁群太大容易形成空間浪費、檔案碎裂,唯一的優點是與傳統的FAT格式相容。Windows 95 SR2希望能徹底解決這個問題。對了,檔案碎裂的問題可用“磁碟重組程式”解決。
由於FAT最多只能有65525個左右的磁群,每個最大32KB,因此65525*32KB每個FAT最大只能支援2GB的邏輯空間。把硬碟分割區大小除以磁群總數就是一個磁群單位的大小,因此容量愈大的硬碟磁群空間也就愈大,空間使用率愈小浪費比率也相對愈高。這些資料可以用DOS的chkdsk指令查到。
* 有存放重要資料的硬碟,請不要隨意使用FDISK指令,這樣可能會刪掉整部硬碟的所有分割及檔案資料!
看到這裡,相信您一定很想知道要如何解決這個問題,提高硬碟空間的使用率。我們的答案是「無解」!因為我們無法改變FAT及VFAT的結構,所以也無法提供令人滿意的解決方案。
不過,如果要是正好準備格式化一顆全新的1GB硬碟的話,可以用DOS的FDISK指令(Windows 95並沒有提供視窗版的分割硬碟程式)把硬碟分割為4個DOS partition,每個partition為256MB。第一個分割區必須設為active partition可開機。
結束FDISK並重新開機後,用DOS的FORMAT指令分別格式化4部256MB的邏輯磁碟,就可以得到將近65501個磁群,每個磁群單位只有4096 bytes,即4KB的邏輯硬碟。Windows NT的NTFS、OS/2 Warp的HPFS檔案系統,就是使用4KB做為磁群的基本單位。不過如此一來,每個硬碟只有256MB,在軟體系統動輒100多MB的時代,一個邏輯硬碟可能只裝個2、3套軟體就滿了!
另一個辦法是使用「不等分」的邏輯分割,把一部1GB的真實硬碟分割為3個邏輯磁碟,第一個邏輯C: 為512MB(這樣每個磁群大小應該是8KB)其他兩個D:、E: 則劃分為256MB。您也可以只分割為兩個磁碟,C:、D: 均為512MB。把作業系統、套裝軟體、圖片存放在C:,體積較小的檔案則放在D: 或E:。
Windows 95把MS-DOS新指令都放在COMMAND資料夾,我們可以利用底下的指令來進入新的DOS目錄:
C:\WINDOWS>cd command Enter
C:\WINDOWS\COMMAND>dir Enter ← 看看有那些新的外部指令!
這裡提供了許多新指令,像是MEM、EDIT、MOVE、START、DELTREE、XCOPY等。您可以在指令後面加上 /? 參數,看看新的指令增加了那些新功能,例如start /? Enter 。
新的start指令可以讓我們在MS-DOS提示號直接啟動Windows程式或是文件,比方說我們想要閱讀前面的LIST.TXT檔,只要直接輸入:
C:\>start list.txt Enter ← 啟動與 .TXT關聯的記事本
就會執行與 .TXT 文件檔關聯的「記事本」來閱讀LIST.TXT,視窗畫面也會切換到記事本。您可以利用「工作列」把畫面切回到MS-DOS視窗。底下是start的指令參數:
C:\WINDOWS>start /? Enter ← 列出 start 的參數說明
Runs a Windows program or an MS-DOS program.
START [options] program [arg...] ← 啟動指定的程式以及程式參數
START [options] document.ext ← 啟動指定的文件檔案,例如list.txt
/m[inimized] Run the new program minimized (in the background).
/max[imized] Run the new program maximized (in the foreground).
/r[estored] Run the new program restored (in the foreground). [default]
/w[ait] Does not return until the other program exits.
C:\WINDOWS>_
* /M:把視窗縮到最小的方式來啟動指定的程式。
* /MAX:以視窗放到最大方式來啟動程式。
* /R:以標準視窗大小來執行程式,這個選項是預設值。
* /W:以上參數會立即回到C:\> 提示號,而 /W則是等到該程式結束之後才會回到C:\> 視窗。
start指令除了可以啟動 .TXT文件,也可以直接啟動有設定副檔名關聯式的文件。更重要的是,利用start指令可以使傳統的DOS批次程式直接執行Windows程式,甚至可以把視窗程式透過程式設計的批次檔加以結構化!
C:\>start win95.doc Enter ← 啟動 Word 來編輯win95.doc
C:\>start win95.xls Enter ← 啟動 Excel 來編輯win95.xls
C:\>start /max pbrush Enter ← 從 MS-DOS 提示號直接啟動「小畫家」