DOS基礎

yanluo129發表於2006-08-28
一、對擴充套件內有的三種使用方式

第一種方式,可稱為原始方式,早期設汁的一些使用擴充套件記憶體的軟體如SUPPER CCDOS5。21以下版本就是這樣使用的(金山漢字啟動時會自動把漢字型檔調入道擴充套件記憶體中)所謂原始方式,也可叫“野蠻”使用方法,因為這種方式中,各軟體都有自己的一套使用擴充套件記憶體方法,相互不通氣也互不相容,結果造成任何時候都只能有一個軟體使用擴充套件記憶體,否則就會出現一個程式把另一個程式在擴充套件記憶體中沖掉這種相互“打架”現象。我們可把這種沒有統一規範以“野蠻”方式使用的擴充套件記憶體稱為“無型別的記憶體”或叫“野的記憶體”。

1984年以後,針對這種現象,解決對擴充套件記憶體使用方法的混亂局面,國際計算機際行業相繼推出了兩個使用擴充套件記憶體的的規範,這分別是XMS規範和EMS規範。這兩個規範是各軟體使用擴充套件記憶體的共同遵循的標準,統一和規範了對擴充套件記憶體訪問的方法。各應用程式使用擴充套件記憶體時都要遵循這兩個規範的規定來訪問擴充套件記憶體,應用程式不再象以前那樣直接對擴充套件記憶體進行存取,而是通過XMS或EMS規範實現對擴充套件記憶體的訪問,由XMS或EMS規範管理和排程各應用程式對擴充套件記憶體的訪問,這就可根本上避免以“野蠻”方式訪問擴充套件記憶體時所可能導致的那種相互打架現象。在XMS和EMS兩種規範中,調XMS規範是一個更先進的觀範,目前新設計的絕大部分使用擴充套件記憶體的軟體如WINDOWS、OFFICE等基本上遵循XMS規範(使用EMS規範訪問擴充套件記憶體的軟體目前已很少)。

我們把通過把XMS規範訪問的擴充套件記憶體稱為“XMS型別的記憶體”或簡稱XMS記憶體,把通過EMS規範訪問的擴充套件記憶體稱為“EMS型別的記憶體”或簡稱EMS記憶體。這兩種規範使用擴充套件記憶體的方式是不一樣的。

XMS是通過將擴充套件記憶體中的資料交換到常規記憶體中的方式使用擴充套件記憶體的,使用者程式依然到常規記憶體中存取資料,再由XMS規範的驅動程式HIMEM.SYS負責將其轉換為對擴充套件記憶體的訪問。

EMS是通過將擴充套件記憶體中的資料交換到上位內序中的空閒地址處。即上位記憶體塊(UMB)中的方式使用擴充套件記憶體的,經過專門設計的使用者程式轉到UMB中存取資料,再由EMS規範的驅動程式EMM386.EXE負責將其轉換力對擴充套件記憶體的訪問。由於EMS記憶體是通過將擴充套件記憶體對映到UMB中,這相當於在上位記憶體中開出的一頁窗,使用者程式通過這個視窗一頁一頁地使用擴充套件記憶體,所以人們也把EMS記憶體叫擴頁記憶體。

以上兩種使用擴充套件記憶體的方式可如下所示:

  HIMEM.SYS

使用者程式←一一…一一→常規記憶體→…一……一→擴充套件記憶體

  (XMS規範)

 

  EMM386.EXE

使用者程式←一一…一一→上位記憶體塊→…一……一→擴充套件記憶體

  (EMS規範)

二、裝置驅動程式HIMEM.SYS的作用

用法:DEVICE=[碟符][路徑]HIMEM.SYS

HIMEM.SYS的作用有二:

一是將1M之外無型別的擴充套件記憶體轉換為符合XMS規範的記憶體,即開闢XMS記憶體,以供那些需要使用XMS記憶體的程式所使用。

二是從XMS記憶體中劃出第一個64K記憶體塊,即從XMS記憶體中開闢出高記憶體區HMA,以便以後DOS=HIGH命令能把DOS部分核心從常駐區中已到HMA中,以節省更多的常規記憶體供使用者程式所使用。

由於以後要執行的很多軟體都要使用由HIMEM.SYS所開闢出的XMS記憶體,顯然HIMEM.SYS應先於所有使用XMS記憶體的程式執行。

另外,HMA也是HIMEM.SYS 開闢出來的,所以只有在執行HIMEM.SYS 才可能實現DOS=HIGH的功能。

三、DOS=HIGH命令的作用

DOS=HIGH命令的功能就是把DOS部分核心從以DOS常駐區中移到HMA中,以節省出更多的常規記憶體供使用者程式所使用。

在DOS 6.22中只有DOS核心能被移到HMA中,裝置驅動程式和常駐程式部只能被移至UMB中。

因為HMA是由HIMEM.SYS所開闢出來的,所以若僅執行DOS=HIGH,則只要HIMEM.SYS的支援就夠了,不需要執行EMM386.EXE。

四。裝置驅動程式EMM386.EXE的作用及其重要引數的含義

用法:DEVICE =[碟符][路徑]EMM386.EXE[NOEMS][RAM]

1.EMM386.EXE的作用

EMM386.EXE的作用也有二:

一是從HIMEM.SYS開闢出的XMS記憶體中劃出一部分轉換為符合EMS規範的記憶體,對映到位於上位記憶體區中的EMS頁框(EMS視窗)中,即開闢出EMS記憶體,或叫作XMS記憶體來模擬EMS記憶體,以供那些需要使用EMS記憶體的老式程式所使用。

二是從HIMFM.SYS所開闢出的XMS記憶體中劃出一部分,對映到上位記憶體塊中,即開闢出上位記憶體塊,以便以後DOS=UMB命令能使DOS把上位記憶體塊也利用起來。

由此我們看到,EMS記憶體和UMB都是從調XMS中“借”過來的,而XMS又是由HIMEM。SYS開闢出來的,所以EMM386.EXE是靠HIMEM.SYS程式來支撐的。

由於UMB是由EMM386.EXE所開闢出來的,所以只有在執行了EMM386.EXE後。才可能實現DOS=UMB的功能。

2.EMM386.EXE的引數

執行EMM386.EXE時的引數很重要,主要執行引數如下:

(1)    若不帶任何引數執行EMM386.EXE,則僅提供EMS記憶體,不提供UMB。

(2)    若帶引數EOEMS執行EMM386.EXE,則僅提供UMB不提供EMS。

(3)    若帶引數RAM執行EMM86。EXE,則既提供EMS記憶體,又提供UMB。

大部分考題都要求,在編寫CONFIG.SYS檔案時,要把一些程式調到UMB中,所以我們在書寫EMM386.EXE命令時,後面一定要寫上引數NOEMS或RAM,即應寫成DEVICE=EMM386.EXE RAM 或DEVICE=EMM386.EXE NOEMS均可。很多學員只寫成DEVICE=EMM386.EXF,後面什麼引數也不寫,這時UMB就出不來了,

用法舉例:

【例1】DEVICE=C:/DOS/EMM386.EXE(只提供EMS記憶體)

【例2】DEVICE=C:/DOS/EMM386.EXE  NOEMS(只提供UMB)

【例3】DEVICE=C:/DOS/EMM386.EXE  RAM(同時提供EMS記憶體和UMB)

五、DOS=UMB命令的作用

DOS=UMB命令的功能是讓DOS把由EMM3S6.EXE所開闢出的UMB與常規記憶體連線在一起,即讓DOS把UMB也利用起來,這樣以後才有可能用DEVICEHIGH或LOADHIGH命令把裝置驅動程式或常駐程式由常規記憶體調入到UMB中,以節省出更多的常規記憶體供使用者程式所使用。

因為UMB是由EMM386.EXE所開闢出來的,所以若要執行DOS=UMB就必須先執行EMM386.EXE。

另外,DOS=UMB只是通知DOS把UMB也利用起來,但並未把任何程式調入到UMB中,若要具體地將某一程式調入到UMB中,需要再執行DEVICEHIGH或LOADHIGH命令。

還有,若只寫了EMM386.EXE,而沒有寫DOS=UMB,則EMM386.EXE所開闢出的UMB對DOS來講並沒有什麼用處,此時DOS並不會使用UMB,當然也就更無法實現DEVICEHIGH或LOADHIGH命令了,所以一定別忘了DOS=UMB這一句。

通過以上分析可知DOS=HIGH與DOS=UMB這兩條命令並沒有什麼必然聯絡,一個是有關HMA的,一個是有關UMB的,在CONFIG.SYS中也下一定要同時出現。

六、DEVICEHIGH與LOADHIGH命令的作用

當在CONFIG.SYS中寫上DOS=UMB命令後,DOS便可將UMB也利用起來,我們可把一些程式存放到UMB中。但是並不是所有的程式部能放到UMB中。能放到UMB中的程式只有兩類,一類是裝置驅動程式,另一類是常駐程式。

1.用DEVICEHIGH=命令裝載裝置驅動程式

用法:DFVICEHIGH=[碟符[ [路徑]裝置驅動程式名

裝置驅動程式是指那些用來驅動和管理硬體裝置的程式,例如HIMEM.SYS便是一個用來驅動和管理擴充套件記憶體這種裝置的程式,又如MOUSE.SYS是一個驅動滑鼠器這種裝置工作的程式。

裝置驅動程式只能以“DEVICE=裝置驅動程式名”的形式寫在CONFIG.SYS中,裝置驅動程式是在DOS啟動時在執行以COMMAND.COM和AUTOEXEC.BAT前就已被執行並被永久地裝入記憶體的。除個別外,絕大部分裝置驅動程式都不能在DOS提示符下執行。絕大部分裝置驅動程式的副檔名都是.SYS,只有eMM386.EXE等少量幾個裝置驅動程式例外。

如果用“DECIVE=”命令來裝載裝置驅動程式,那麼裝置驅動程式將被裝入到常規記憶體中。若想把裝置驅動程式裝入到上位記憶體中,必須改用“DFVICFHICTH=”命令。實際上在DOS6.22中DEVICEHIGH命令已可完全替代DEVICE命令,所有寫DEVICE的地方部可換成DEVICEHIGH,DOS若發現無法將該驅動程式裝人到UMB中,會自動將其放到常規記憶體中,不會出錯。儘管如此,我們還是建議學員在考試時對這兩個命令根據情況區分使用。

2.用“LOADHIGH”命令執行常駐程式

用法:LOADHIGH [碟符] [路徑]常駐程式名

或LH[碟符] [路徑]常駐程式名

在DOS提示符下執行的程式,在其執行結束後,,通常便釋放其所佔據的所有記憶體空問,以供下一個要執行的程式所使用。但是有一類程式卻不是這樣,這類程式就是常駐程式。常駐程式也叫常駐記憶體程式、TSR程式或駐留程式,是指那些一旦執行便永久地佔據記憶體(這些程式永遠呆在記憶體裡不出來)的程式。程式常駐記憶體後,就有機會隨時發揮作用,監視和控制使用者的工作。例如病毒就是典型的常駐程式,啟動漢字作業系統時需執行的程式如SPIIB.COM、SPDOS.COM、PY.COM,滑鼠管理程式MOUSE..COM等都是常駐程式。DOS6.22中的SMARTDRV.EXE、DOSKEY.COM、VSAFE.COM等也是常駐程式。

常駐程式都必須在DOS提示符下執行,不能寫在CONFIG.SYS中。所以判斷一個程式是裝置驅動程式還是一個常駐程式的通常方法是:若其必須寫在CONFIG.SYS中,則便是裝置驅動程式;若只能在DOS提示符下執行便是一個常駐程式(當然能在DOS提示符下執行的並不都是常駐程式)。

如果執行常駐程式時沒寫LOADHIGH,如MOUSE,則該常駐程式便將駐留在常規記憶體中,若想將常駐程式調到UMB中,必須在命令的前面寫上LOADHIGH(注意:LOADHIGH簡寫為LH),例如:LOADHIGHMOUSE.COM.則MOUSE.COM被放到UMB中。

要特別注意這兩個命令的用法差別:裝置驅動程式只能用“DEVICEHIGH=”命令,常駐       記憶體只能用“LOADHIGH”命令(或“LH”命令),並且DEVICEHIGH前面必須寫上等號,而LOADHIGH 後面絕不可寫等號,用一個空格與常駐程式名隔開就可以。

七、磁碟高速緩衝程式SMARTDRV.EXE的作用與用法

DOS6..22中有一個非常有用的常駐程式SMARTDRV.EXE,使用它可以大大加快磁碟的讀寫速度。其工作原理如下:

由於相對於記憶體而言,磁碟(包括硬碟)的讀寫速度要慢多了。為此SMARTDRV.EXE從XMS記憶體中外闢出一塊區域(稱之為高速緩衝區)作為主機與磁碟之間的一塊中間區域,用來暫時存放上次從磁碟上讀取的資料。這樣,下次讀取磁碟時,SMARTDRV.EXE首人查詢一下要讀取的資料在這塊緩衝區中是否能找到,若能找到就沒有必要再讀取磁碟,就可直接把資料從緩衝區中取回了,這樣可大大節省讀取磁碟的時間。當然若在緩衝區中找不到,那就沒辦法了,還得讀磁碟去。所以這就有個在緩衝區中是否能找到,即命中率的概念,顯然重複讀取的資料命中率就比較高。類似地,SMARTDRV.EXE對寫磁碟也能進行快取記憶體。當寫磁碟時,主機只要把資料寫到緩衝區中就可馬上返回做其它事情,待CUP空閒時,再由SMARTDRV.EXE在後臺偷偷把資料寫到磁碟上,從而可大大加快寫盤速度。

由於SMARTDRV.EXE只能使用XMS記憶體,所以事先必須在CONFIG.SYS檔案中執行HIMEM.SYS程式,以開闢出XMS記憶體供SMARTDRV.EXE作高速緩衝區用.。注意SMARTDRV.EXE是個常駐程式,通常是寫在AUTOEXEC..BAT中或在DOS提示符下單獨執行,一般不應寫在CONFIG.SYS檔案中,只有寫在AUTOEXEC.BAT中或在DOS提示符下執行才能起緩衝作用

另外,SMARTDRV.EXE 這個常駐程式很特殊,即使我們執行時不帶LOADHIGH,它也會自動把自己裝入到UMS中,(我們是說SMARTDRV.EXE程式本身會自動進入到UMB中,SMARTDRV.EXE所開闢的高速緩衝區依然在XMS記憶體,即擴充套件記憶體中)只有這一個特例,其它常駐程式若要裝到UMB中,就都必須寫上LADDHIGH。

SMARTDRV.EXE 程式的主要用法如下:

[盤行][路徑] SMARTDRV.EXE[初始值][WINDOWS執行時的最小值] [L]

其中:

初始值(單位是Km一一是指使用多大的XMS記憶體作為磁碟高速緩衝區,越大當然越好,但若超過過2M,再增加效果就不明顯了。若不給出最大值,SMARTDRV.EXE將視所配置的XMS記憶體的大小自動選擇一個合適的值。

WINDOWS執行時的最小值(單位是KB)一一隻有執行WINDOWS時才有可能用到這一引數。因為,WINDOWS要大量使用XMS記憶體,當調XMS記憶體緊張時,WINDOWS會自動地減少SMARTDRV.EXE所使用的高速緩衝區的大小,以便先滿足自己對XMS的要求。規定一個最小值,就是給WINDOWS一個限制,高速緩衝區減少到這個最小值時,就不許WINDOWS再搶佔SMARTDRV.EXE所用的高速緩衝區域了。

/L-――強行將SMARTDRV.EXE裝入到常硯記憶體中(若不寫,SMARTDRV.EXE自動將自己裝到UMB中)

用法舉例:

【例1】C:/DOS/ SMARTDRV.EXE(自動選擇合適的高速緩衝區大小)

【例2】C:/DOS/ SMARTDRV.EXE 1024 502(初始值為1024K,WINDOWS行時的最小值為512K)

八、建立RAM盤的裝置驅動程式RAMDRIVE.SYS的作用與用法

RAMDRIVE.SYS的作用是:用系統的一部分記憶體建立存取速度極快的RAM磁碟。

一般用法如下:

DEVICE=[碟符] [路徑] RAMDRIVE.SYS [RAM盤容量] [/E][/A]

其中。

RAM盤容量(單位是KB)一使用多少記憶體去建立RAM盤,預設值64K。

/ E 使用XMS記憶體來建立RAM盤。事先應執行HIMEM.SYS才會有XMS記憶體。

/ A 使用EMS記憶體來建立RAM盤。事先應執行HIMEM.SYS和EMM386.EXE,才會有EMS記憶體。

若/E或/A都未寫,則預設採用常規記憶體來建立RAM盤。

用法舉例:

【例1】DEVICEHIGH=RAMDRIVE.SYS(使用常規記憶體,大小為64K)

【例2】DEVICEHIGH=RAMDRIVE.SYS 1024/E(使用XMS記憶體,大小為1M)

【例3】DEVICEHIGH=RAMDRIVE.SYS 2048/A(使用EMS記憶體,大小為2M)

九、各記憶體管理命令的相互依賴關係

通過上面對常用記憶體管理程式的細緻分析,可看出這些命令之間執行有一個先後順序問題,它們之間的相互關係如前所述。

在書寫CONFIG.SYS檔案時,心須先寫HIMEM.SYS,然後再寫EMM386.EXE,最後才是DEVICEHIGH命令,但DOS=HIGH,DOS=UMB及其它命令寫在任何位置上均可。

擴充套件記憶體的簡單設定

1.將DOS裝入高位記憶體(HMA),其位置在1兆以上的64K區域內
在CONFIG.SYS檔案中輸入
DEVICE=HIMEM.SYS
DOS=HIGH
 
2.將驅動程式裝到高階記憶體(上位記憶體),其位置在640K到1M之間(系統未用區)
在CONFIG.SYS中輸入
DEVICE=EMM386.EXE RAM (NOEMS)
DOS=UMB
 
3.用DEVICEHIGH=裝置驅動程式格式,使用高階記憶體:
DEVICE=HIMEM.SYS
DEVICE=EMM386.EXE RAM (NOEMS)
DOS=HIGH,UMB
DEVICEHIGH=ANSI.SYS

十、多重配置檔案編寫及常見錯誤

1.多重配置時CONFIG.SYS檔案的一般結構

[MENU]

MENUITEM 配置塊名1,對應的選單顯示文字

MENUITEM 配置塊名2,對應的選單顯示文字

……

MENUCOLOR 選單文字顏色,螢幕背景顏色(此行一般不寫)

MENUDEFAULT 預設配置塊名,等待按鍵秒數(此行可省略)

[COMMON」

公共配置命令

[配置塊名1]

 配置塊1對應的命令

[配置塊名2】

 配置塊2對應的命令

十一、多重配置時CONFIG.SYS檔案的常見錯誤

(1)配置塊名中不得含有空格,選單顯示文字中可含有空格但不得用引號引起來。

(2)選單顯示文字可以省略,若省略,將以配置塊名作為預設的選單顯示文字。

(3)執行時選單顯示文字中的內容將原封不動地顯示在螢幕上,所以要注意選單顯示

文字必須與考題要求的大小寫一致。如果選單文字省略,則由於此時配置塊名將作為預設的選單顯示文字顯示在螢幕上,此時必須注意MENUITEM中所寫的配置塊名要與考卷要求的大小寫一致。

(4)MFNUDEFAULT命令雖還未考過,但該命令很有用,應掌握。若寫有MENUDEFAULT,則若在指定的時間內使用者未按鍵選擇,將自動執行所指定的預設配置;若未寫MENUDEFAUI1,則將一直等待使用者按鍵選擇一個配置。

(5)配置塊名前後要一致,但大小寫不必區分。

(6)配置塊的書寫順序無要求,但習慣上將[COMMON]寫在最前面。同名的配置塊(包括公共塊)可有多個,執行時將順序執行所有的同名塊。

(7)在多重配置檔案中,任何一條配置命令都必須包含在某個配置塊中,不允許有不屬於任何配置塊的配置命令。

(8)若公共塊中不包含任何公共配置命令,則[COMMON]一行保留或刪除都可以。

(9)尤其注意的是,凡在MENUITEM中列出的每個配置塊,在後面必須有與之相對應的[配置塊名],即使某個配置塊中的內容為空,也必須寫上一行[配置塊名],絕不能省略,否則將來執行時將報錯找不到對應的配置塊名。這是最易犯錯誤的地方。

(10)一定要嚴格分清哪些命令應寫在CONFIG.SYS中,哪些命令應寫在AUTOEXEC.BAT中。裝置驅動程式都應寫在CONFIG.SYS中,而DOS內部命令和外部命令都應寫在AUTOEC.BAT中。

十二、多重配置時AUTOEXEC.BAT檔案的一般結構

公共執行命令

GOTO %CONFIG%

:配置塊名1

配置塊:要執行的命令

GOTO 結束標號名

:配置塊名2

配置塊2要執行的命令

GOTO結束標號名

:結束標號名

十三、多重配置時AUTOEXEC.BAT檔案的常見錯誤

(1)在多重配置的AUTOEXEC.BAT檔案中,最為重要的一條命令就是GOTO %CONFIG%,其中的“CONFIG”必須用兩個百分號夾住,並且中間不能含有任何空格。在DOS中,“%環境變數名%”用法的含義是取指定環境變數的值。在多重配置時,CONFIG是DOS內部一個保留的環境變數名,它代表使用者在MENUITEM定義的選單中所選擇的那個配置塊的名字。例如,若使用者在選單中所選擇的選單項對應的配置塊名字為WINDOWS,則%CONFIG%的值就是WINDOWS,此時,GOTO %CONFIG%就相當於GOTO WINDOWS,這樣就可以靈活地根據先前的選單選擇轉移到相應標號處。絕不能將此句寫成“GOTO CONFIG”或寫成“GOTO CONFIG.SYS”。

(2)在CONFIG。SYS檔案中定義的每個配置塊名,在AUTOEXEC。BAT中都必須存在相應的標號“:配置塊名”。即使某個標號所屬內容中無任何命令,也必須寫一行“:配置塊名”,不得省略任何一個標號。這也是最易犯錯誤的地方之一。

(3)用“:配置塊名”語句定義的標號必須與先前在CONFIG.SYS中定義的相應配置塊名一致,但大小寫不必區分。另外,習慣上將結束標號名定義為END。

(4)每個標號下屬語句的最後都應加上“GOTO 結束標號名”語句,並在檔案尾用“:結束標號名”語句定義結束標號,表示做完本配置中的命令後跳過其它配置對應的命令。

(5)若無公共命令,則第一條命令即為GOTO %CONFIG%。

(6)若按以上寫法,是先執行完公共命令,然後再執行相應配置塊中的命令。有時,可能希望先執行配置塊中的命令,最後再執行公共命令,這時就應將公共命令寫在最後,即從“:結束標號”語句的下一行開始寫公共命令。

五、一個最小的多重配置檔案例項

多重配置題在光碟的練習題中都有,請學員結合以上所講要點,對照這些考題自行加以分析,限於篇幅這裡我們就不再舉例分析了。

下面列出的一個多重配置例項,啟動時僅顯示一個配置選擇選單(兩個配置名分別為DOS和WINDOWS),但無論選擇哪個都不執行任何命令。這舉例子沒有任何實際意義,我們的目地是希望通過這舉例子強調一個問題:即使一個配置塊中不包含任何內容,CONFIG.SYS檔案中的任何一個配置塊定義語句(即“[配置塊名]”)以及AUTOEXEC.BAT

檔案中的任何一個標號定義語句(即“:配置塊名”)都不能省略,否則執行時都將出錯。

(1)CONFIG,SYS檔案內容:

[MENU]

MENUITEM=DOS

MENUITEM=WINDOWS

[COMMON](這一行可以省略,但最好不省)

DOS」

[WINDOWS]

(2)AUTOEXEC.BAT檔案內容:

GOTO %CONFIG%

:DO5

GOTO END

:WINDOWS

GOTO END

:END

   十四、當前盤和當前目錄

  當前盤指當前位於哪個磁碟上,當前目錄指當前位於該磁碟上的哪個目錄中,一般說來,DOS提示符會告訴我們現在的當前盤當前目錄在哪裡。例如若螢幕上顯示的提示符為C:\WINDOWS>,則表示現在正位於C:\WINDOWS>中。如果要改變當前盤,只要輸入碟符並回車即可,例如C>A:↓,即可切換到八盤上,螢幕提示符自動改為A>;如來要改變目錄必須使用下面將介紹到的CD命令。

  十五、檔案識別符號

  通過碟符、路徑和檔名三要素(稱為檔案識別符號)可唯一指定盤上的”個檔案。但在實際使用時,為使用方便經常省略檔案識別符號中的某一部分。請特別注意下列使用原則:

   (1) 若碟符路徑均預設,則預設指當前盤當前目錄。

   舉例:C:/WINDOWS>DIR *.*↓

   解釋:顯示當前盤當前目錄中的所有檔案(即C:/WINDOWS子目錄)。

   (2) 若碟符預設,則預設指當前盤。

   舉例:C:/WINDOWS>DIR  /DOS/*.*↓

   解釋:顯示當前盤指定目錄中的所有檔案(即C:/DOS子目錄)。

   (3) 若路徑預設,則預設指當前目錄。

   舉例:C:/WINDOWS>DIR  A:*.*↓

   解釋:顯示指定盤當前目錄中的所有檔案(即A盤當前目錄,不一定是A盤根目錄)。

   (4) 若檔名預設,則不同命令對其有不同的解釋(大部分場合代表所有檔案。相當於*.*,但也有例外)。

   舉例:C:/WINDOWS>DIR ↓

   解樣:顯示當前盤當前目錄中的所有檔案(即C:/WINDOWS子目錄,相當於省略了*.*)。

    十六、絕對路徑和相對路徑

   如果一個檔案的檔案識別符號是從根目錄算起的一條完整路徑,則稱之為絕對路徑。反之,如果路徑是從當前目錄算起的,則稱之為相對路徑。初學者若對此搞不清楚,則使用絕對路徑把握較大,但寫起來較繁瑣,使用相對路徑則書寫起來簡單多了。

   舉例:C:/DOS>DIR  C:/WINDOWS/SYSTEM/*.*↓

   解釋:本例使用的是絕對路徑,檔案位置從C:盤根目錄算起明確給出了其完整路徑。

   舉例:C:/DOS>DIR  WINDOWS/SYSTEM/*.*↓

   解釋:本例使用的是相對路件。其含義是,顯示當前盤當前目錄C:/DOS>下的WINDOWS子目錄的SYSTEM子目錄的所有檔案,其含義大不一樣。這與下面命令相當,C:/DOS>DIR  C:/DOS/WINDOWS/SYSTEM/*.*↓

   使用時要特別注意其區分,一般原則是,若是使用當前目錄中的內容或者當前目錄中的內容,則使用相對路徑較為合適;若是使用當前目錄的上級(或更上級)目錄中的內容,則使用絕對路徑較為合適。

   十七、內部命令和外部命令

   DOS命令分為DOS內部命令和DOS外部命令兩大類。在DOS提示符下執行的任何一條命令(包括內部和外部命令)都是由命令處理程式COMMAND.COM負責解釋執行的。任何一張能用於啟動DOS的系統盤上都必然包含以DOS的三個系統檔案IO.SYS、MSDOS.  SYS和COMMAND.COM。命令處理程式COMMAND.COM正是在機器啟動時由磁碟載入程式裝進記憶體的、並且該程式一經裝入即常駐記憶體。

   所有DOS內部命令的執行程式碼部包含在COMMAND.CO M程式中。我們知道,任何程式要執行都必須先進入記憶體,現在既然內部命令所使用的COMMAND.COM程式在機器啟動時便已進入了記憶體,所以對於內部命令機器啟動成功後便可直接使用,內部命令執行時我們絕不可為其指定碟符或路徑。另外,由於內部命令執行時在記憶體中便可找到其對應的執行程式碼,不像外部命令那樣需臨時從磁碟上將對應的可執行程式裝入到記憶體中再執行,所以內部命令的執行速度很快。

   內部命令都是一些常用的命令,但受基本記憶體容量限制,COMMAND.COM程式不可能做得很大,以致仍然有一些命令無法包含在其中。這些命令就只能以程式檔案的形式存放在磁碟上,其副檔名分EXE和COM兩種。使用時,使用者通過其檔案主名來呼叫相應的程式,這些程式檔案不能在機器啟動後就直接使用,並且都存放在外存上,所以你之為外部命令。以EXE和以COM為副檔名的磁碟檔案部叫做DOS外部命令。

   已為內部命令在機器啟動成功後即已在記憶體中了,所以執行內部命令時前面不需為其指定碟符路徑。但執行外部命令時一般要給出該外部命令所在的位置,即在其程式名前指出碟符和路徑,以使DOS執行該命令時能在磁碟上找到它,並把它調進記憶體。這是外部命令和內部命令在使用方法上的一個重要區別。由於外部命令比內部命令多一個從磁碟讀入記憶體的過程·所以執行速度較慢。但需要指出,在以下兩種情況下執行外部命令時,可不必給出碟符路徑,一是該外部命令在當前盤的當前目錄中,二是事先用DOS的PATH命令為外部命設定了搜尋路徑。

十八、一些常用的DOS內部命令

1.COPY命令

    用法: COPY (原始檔識別符號) [目標檔案識別符號]

    作用:複製檔案、連線檔案、建立檔案、輸出檔案。

    例如:,C:/DOS>COPY  HIMEM. SYS  HINIEM2. SYS↓

    使用時,原始檔名和目標檔名中均可使用萬用字元?和*,以便複製一批檔案。

    (1)複製檔案

    ① 同名複製 如果目標檔名與原始檔名同名,則目標檔名可預設。

    舉例::C:/DOS>COPY HIMEM.SYS  C:/WINDOWS↓

    作用:將當前盤當前目錄C:/DOS中的HIMEM.SYS複製到C:/WINDOWS 目錄中,檔名不變(這裡假設事先存在下級子目錄WINDOWS)。

    舉例::C:/DOS>COPY /*.SYS  C:/WINDOWS↓

    作用:將C盤根目錄中的所有.SYS複製到C:/WINDOWS 目錄中,檔名不變。

    ② 換名複製

    COPY命令可邊複製邊改名,當目標檔名與原始檔名不同名時,目標檔案的檔名必須列出。

    舉例::C:/DOS>COPY HIMEM.SYS  C:/WINDOWS/HIMEM2.SYS↓

 解釋:將HIMEM.SYS檔案複製到C:/WINDOWS目錄中,並改名為HIMEM2.SYS。

 舉例:C:/DOS>COPY  *.TXT  C:/WINDOWS/*.DAT↓

 解釋:將所有以TXT為副檔名的檔案部複製到C:/WINDOWS目錄中,並將複製過去的副檔名都改為DAT。

 ③ 整個目標檔名預設時

 當整個目標檔案的檔案識別符號全預設時,表示要把原始檔複製到當前目錄中,且目標檔名與原始檔名同名。

 舉例:C:/WINDOWSS>COPY  C:/WINDOWS/*.SYS↓

 解釋:將C:/WINDOWS目錄中所有以SYS為副檔名的檔案都複製到當前盤當前目錄WINDOWS中。

 注意:如果複製到目標處恰好有與原始檔同名的檔案,則DOS將提示如下:Overwrite  XXXXXXXX.XXX Yes/No/All)?,這是在詢問使用者是否要覆蓋目標處的同名檔案,使用者回答Y並回車表示覆蓋該檔案;回答N並回車表示不覆蓋該檔案;回答A並回車表示不僅覆蓋該檔案,而且在該複製過程中自該檔案以後的所有同名檔案均覆蓋,並不再提示。

(2) 檔案連線

用法:COPY  (檔案識別符號1)+[檔案識別符號2]十[……][新檔名]

用加號將多個文字檔案連線,合併成為一個新檔案。

文字檔案是指不含任何特殊控制符號,只包含純粹文字資訊的檔案。例如,用DOS的COPY CON 、EDIT以及WINDOWS中的筆記本NOTEPAD)等所建立的檔案都是文字檔案。注意,對可執行檔案進行連線沒有任何意義。

舉例:C:/>COPY C:/DOS/L1.TXT+C:/DOS/L2.TXT C:/DOS/L3.TXT↓

如果新檔名預設則表示以第一個檔名作為新檔名。

(3)建立文字檔案

使用DOS的保留檔名(也稱保留裝置名)CON:,可以將鍵盤上輸入的內容生成一個新的文字檔案。CON:作為輸入裝置解釋時代表鍵盤,作為輸出裝置解釋時代表螢幕。

舉例:C:/>COPY CON:  A:/MEMO.DAT↓

解釋:該命令執行後,我們便可在鍵盤上輸入多行內容,輸入完後按F6鍵或CRTL+Z鍵,然後回車,便可在A盤根目錄中建立一個新檔案MEMO.DAT。

(4)輸出資料檔案

將資料檔案從螢幕或印表機上輸出。

舉例:C:/DOS>CPPY C/CONFIG.SYS PRN:↓

解釋:在印表機上列印檔案內容。其中DOS保留裝置名PRN:代表印表機,可以理解為將檔案複製到印表機上輸出(注:PRN和CON後的冒號可以省略)。

舉例:C:/DOS>COPY C:/CONFIG.SYS CON↓

解釋:在螢幕上顯示檔案內容。

2.DEL命令(或ERASE命令)

用法:DEL[檔案識別符號]

作用:將指定的一個或一批檔案刪除(該命令不能用於刪除目錄),檔名中允許出現萬用字元。

舉例:C:/>DEL C:/DOS/OS2.TXT↓

舉問:C:/TEMP/DEL *.*↓ (刪除指定目錄中的所有檔案時要小心)

3.REN命令(或RENAME命令)

    用法:REN  [原始檔識別符號]  [新檔案識別符號]

作用:將原始檔名改為新檔名。檔名中允許出現萬用字元,即允許同時對一批檔案進行改名。

舉例:C:/DOS>REN  README.TXT HELP.DOC ↓

舉例:C:/DOS>REN  *.TXT *.DOC ↓

解釋:將C:/DOS目錄中所有以TXT為副檔名的檔案的副檔名都改為DOC,檔案主名不變。

注意:(1)原始檔名中可以出現碟符路徑,但新檔名中絕對不允許出現碟符路徑。因為改名後的新檔案只能位於原始檔所在的目錄路徑處。

     (2)新檔名不允許與原始檔所在目錄的其它檔案同名。

4.TYPE命令

用法:TYPE[檔案識別符號]

作用:將指定檔案所包含的全部內容在螢幕上顯示出來。用該命令顯示可執行檔案中的內容是沒有意義的。

舉例:C:/DOS>TYPE README.TXT ↓

注意:(1)檔名中不允許出現萬用字元?和*,一次只能顯示一個檔案的內容。

      (2) 通過重定向命令可以將檔案內容輸出到印表機或其它檔案中,但螢幕上將不再顯示檔案內容。如:C:/DOS>TYPE C:/AUTOEXEC.BAT>PRN↓

5. CD命令(或CHDIR命令)

用發:CD [碟符] [目錄]

作用:改變(進入)到指定目錄中或顯示當前目錄。

CD命令只能改目錄,不能改變碟符。

有幾個特殊的子目錄名要注意,“.”表示當前目錄,“..”表示當前目錄的上級目錄,“/”表示根目錄。

CD命令共有如下四種用法:

(1) 若只給出目錄名,其作用是改變當前盤的當前目錄到指定目錄中。這是CD命令的最主要的用法。

舉例:C:/WINDOWS>CD SYSTFM↓

顯示:C:/WINDOWS/ SYSTFM>

(2)若同時給出碟符和目錄名,其作用是切換指定盤的當前目錄到指定目錄中。用這種方法,可在當前盤不變的情況下,改變另一個盤的當前目錄。

舉例:C:/WINDOWS>CD A:/WARNING ↓

將A盤的當前目錄改變到WARNING中)

顯示:C:/WINDOWS>

(注意:當前盤並未改變,所以系統提示符未改變)

操作:C:/WINDOWS>A: ↓

顯示:A:/WARNING> (A盤的當前目錄的確改變了)

(3) 若只給出碟符,其作用是顯示一下指定盤的當前目錄現在在什麼位置上。

舉例:C:\WINDOWS> CD A: ↓

顯示:A:/(表示A盤的當前目錄為根目錄)

(4) 若未給出任何引數,其作用是顯示一下當前盤當前目錄現在在什麼位置上。

舉例:C:\WINDOWS> CD ↓

顯示:C:\WINDOWS

表示當前盤當前目錄為C:\WINDOWS>,與提示符中顯示的一樣)

6.  MD命令(或MKDIR命令)

用法:MD [碟符:] [新子目錄名]

作用:建立指定的新子目錄。

注意:(1)新建子目錄要注意,同一個目錄下不能有兩個相同名字的子目錄或檔案。

      (2)  建立多級子目錄時,必須先建上級於目錄,再建下級子目錄,從上自下逐級執行。

舉例:C:/DOS/MD DOS1↓

      C:/>MD WORK↓

         (3) 該命令一次只能建立一個子目錄。

7.RD目錄(或RMDIR)命令

用法:RD [碟符:] [子目錄名]

作用:刪除指定的子目錄。

注意:(1)刪除一個子目錄時一定要保證該目錄下已經無任何內容,必須從下往上逐級刪除。顯然,這條命令遠不如外部命令DELTREE.EXE方便。

     (2)不能刪除當前目錄,必須退回到其上級目錄或其它目錄中才能刪除。

      (3) 該命令一次只能刪除一個子目錄。

舉例:C:/WORK目錄中己有一些檔案和一個名為WORKI的子目錄,要求刪除WORK子目錄。

操作:C:/DEL WORK/*.* ↓

      C:/DEL WORK/WORK1*.* ↓

      C:/RD WORK/WORK1 ↓

      C:/RD WORK↓

8.PATH命令

用法:PATH [碟符:][路徑];[碟符:][路徑]………

作用:PATH用來設定外部命令的查詢路徑。當使用者執行一個外部命令時,DOS總是先在當前目錄中尋找對應的程式檔案,如找不到,則會自動按PATH所設定的查詢路徑順序,依次查詢這些路徑中是否存在該程式檔案,若找到則立即執行,如在PATH命令設定的路徑中還是未找到對應的程式檔案時,系統提示:Bad COMMAND or FILENAME(錯誤命令和檔案)。一旦用PATH設定好查詢路徑,則以後無論在任何子目錄中都可直接執行這些路徑中所包含的外部命令,非常方便。

注意:(1)PATH設的查詢路徑之間必須用分號分隔,不能使用空格。所設計的查詢路徑中請使用絕對路徑,不要使用相對蹋徑。

(2)PATH所設定的查詢路徑一設定就一直有效。若用PATH重新設定過查詢路徑,則新的查詢路徑會自動覆蓋當前的查詢路徑。

(3)刪除先前所設定的所有查詢路徑需使用命令PATH;

(4)只有使用者執行以EXE、COM或BAT為副檔名的程式檔案時,DOS才按PATH設定的查詢路徑去查詢。PATH對其餘副檔名的檔案無效。

(5)PATH後不帶參數列示顯示當前所設定的查詢路徑。

舉例:執行C:/DOS中的外部命令ATTRIB的幾種方法。

[方法1]:明確寫明外部命令所在的碟符路徑。

C:/WINDOWS>C:/DOS/ATTRIB↓

[方法2]先進入該子目錄中,然後執行該外部命令。

C:/WINDOWS>CD /DOS↓

C:DOS>ATTRIB↓

[方法3]先用PATH命令設定查詢路徑,將該子目錄包含在查詢路徑中,這樣以後便可在任何子目錄中直接執行該外部命令。

    C:/WINDOWS>PATH :/DOS;C:/WINDOWSC;/UCDOS;C:/FOXPRO25↓

       C:/ATTRIB↓

9.CLS命令

用法:CLS

作閒:清除螢幕上顯示的所有內容,並將游標定位於螢幕左上角。

十九、常用的DOS外部命令

1.FORMAT命令

目法:FORMAT(碟符)/U/Q/S

作用:格式化指定驅動器中的磁碟,使之能在DOS下使用,尋找並標識出壞的磁軌,建立並初始化該磁碟的引導記錄、檔案分配表和根目錄表。被格式化磁碟中的所有資料都將丟失,新盤只有格式化後才可使用。

(1)快速格式比(引數/Q)

快速格式比的物件必須是一張已格式化過的磁碟,使用引數/Q來進行,它將清空檔案分配表和根目錄表,但磁碟上資料區的所有內容均保持不變,也不檢查磁碟上的壞磁軌,所以格式化的速度較快。快速格式化後的磁碟可用UNFORMAT命令恢復,但對新盤不能使用快速格式比。

(2)無條件格式化(引數/U)

無條件格式化使用引數/U進行,它將清除磁碟中的所有資料,同時檢查壞磁軌,格式化速度較慢。無條件格式化不儲存磁碟原來的系統區,所以格式化後的磁碟以後無法用UNFORMAT命令恢復,而沒有使用/U的FORMAT命令一般都可用UNFORMAT命令來恢復。對新盤或者使用了很久時間的磁碟使用無條件格式化較為合適。

(3)格式化並製作一張系統盤(引數/S)

使用引數/S將在格式化完一張磁碟後,隨即將系統程式複製到該盤中,使其成為一張可啟動DOS的系統盤。系統程式指如下四個程式:IO.SYS,MSDOS.SYS、DRVSPACE。BIN、COMMAND。COM,其中前三個程式為系統、隱含、只讀檔案。

(4)以上引數可組合使用,如果想最快速地格式化一張盤,使用/Q引數組合,格式化的速度是最快的,如果格式化時/Q/U引數都未寫,則預設儲存原系統區,並檢查壞磁軌,格式化後的磁碟可用UNORMAT命令恢復,但格式化的速度是最慢的。

舉例:格式化一張磁碟。

操作:C:/DOS/FORMAT A↓

舉例:格式化一張能啟動DOS的系統盤。

操作:C:/DOS/FORMAT A/S↓

舉例:最快速的格式化一張磁碟。

操作:C:/DOS/FORMAT A/Q/U↓

 

相關文章