DOS基礎

一、對擴展內有的三種使用方式

第一種方式,可稱爲原始方式,早期設汁的一些使用擴展內存的軟件如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↓

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章