|
環(huán)境是DOS系統(tǒng)的變量存儲區(qū)——一個高速暫存存儲器,它保存于RAM中,是DOS系統(tǒng)保存重要信息以供批處理文件使用的場所。用戶可以根據(jù)需要修正或改變它的信息。很多DOS參考書都忽略了它,但不管你知不知道,都在自覺或不自覺地使用著它。
如何造訪環(huán)境 造訪環(huán)境有兩種方法,一種是通過SET命令來查看,另一種是使用DOS系統(tǒng)的DEBUG命令來查看計算機的RAM。SET命令直觀、方便,大多數(shù)DOS用戶都喜歡使用它來設(shè)置和查看DOS環(huán)境。 1.用SET命令 SET命令可用于設(shè)置、修改和查看環(huán)境變量,鍵入無參數(shù)的SET命令可顯示當(dāng)前環(huán)境設(shè)置。這些 設(shè)置一般包括COMSPEC和PATH環(huán)境變量,MS-DOS用它們在磁盤上尋找程序。另外還有PROMPT、DIRCMD、COPYCMD等為DOS系 統(tǒng)所使用的其它環(huán)境變量。這些環(huán)境變量大多在AUTOEXEC.BAT或CONFIG.SYS文件中用SET命令設(shè)置而生成。如下例: C:>SET COMSPEC=C:COMMAND.COM 2.通過DEBUG命令 DEBUG是DOS提供的調(diào)試程序的有力工具,利用它可以檢驗磁盤原始信息、查看內(nèi)存單元、反匯編程序文件或生成新程序等等,然而DEBUG命令有一定的危險性,因此用戶在使用過程中須注意。 DOS系統(tǒng)每運行一個程序都要生成一個256字節(jié)的內(nèi)存塊——程序段前綴 PSP(Program Segment Prefix),它包含了一些比較重要的信息,如內(nèi)存單元、矢量、命令行上鍵入的文件名、命令行本身(用戶運行 程序的命令行的拷貝)、各種保留緩沖器存儲地點的信息。只要涉及環(huán)境,那些存儲地點之一就會保存系統(tǒng)環(huán)境地址。 在DEBUG命令狀態(tài)下查看環(huán)境,首先查看偏移量2C處的兩個字節(jié): ?。璂2CL2 數(shù)據(jù)90 09是在某系統(tǒng)上得到的計算機環(huán)境的段地址值(用戶在操作時應(yīng)以實際顯示數(shù)為準),把這兩對數(shù)以相反的順序,并在后面跟上偏移量0,就能在DEBUG命令上顯示系統(tǒng)環(huán)境。如下例: -D0990:0 從上面所顯示的環(huán)境可以看到,環(huán)境中的每項都被“空”字節(jié)00隔開,并且環(huán)境中的最后一項后面是兩個空字符。 上面兩種方法所顯示的環(huán)境,其結(jié)果是一致的。 環(huán)境變量“眾生相” 1.COMSPEC變量 這個變量規(guī)定了COMMAND.COM文件的位置。通常,如果計算機由硬盤驅(qū)動器引導(dǎo) COMSPEC變量表示為: COMSPEC=C:COMMAND.COM 如果是從軟盤驅(qū)動器引導(dǎo)的,則COMSPEC變量表示為: COMSPEC=A:COMMAND.COM 使用SET命令能改變COMSPEC的位置,格式為: SET COMSPEC=C:DOSCOMMAND.COM 此命令在系統(tǒng)環(huán)境中把COMSPEC重新設(shè)置成C盤DOS目錄中的COMMAND.COM文 件,因為COMMAND.COM不需要在用戶的根目錄中。用戶也可以把COMMAND.COM放進其它子目錄中,采用CONFIG.SYS的SHELL命 令來完成這項工作。在計算機的啟動過程中,CONFIG.SYS是在COMMAND.COM裝入之前運行的,用SHELL命令通知DOS系統(tǒng) COMMAND.COM在另一個目錄中,則系統(tǒng)到那個目錄去找它。這有一個明顯的優(yōu)點,它保持了根目錄的清潔。 另外,為保證系統(tǒng)能正常運行,用戶還需在CONFIGSYS文件中加上這樣一句: SHELL=C:DOSCOMMAND.COM /P [/E:1024] 此命令指示DOS在C:DOS子目錄中尋找并運行命令解釋程序或外殼程序 COMMAND.COM。如果把此命令加到CONFIG.SYS文件中,可提前把COMMAND.COM移到DOS子目錄中。P選項指示 COMMAND.COM在根目錄中尋找AUTOEXEC.BAT文件并且運行它,如果沒有此選項,則根目錄下的AUTOEXEC.BAT文件不能運行。 當(dāng)DOS系統(tǒng)沒有更多的空間存儲環(huán)境變量時,將會看到信息: Out of environment space(環(huán)境空間溢出) 出現(xiàn)這種情況后,可利用SHELL命令加大COMMAND.COM的環(huán)境空間,可選項E:1024就是將環(huán)境空間擴大到1KB(1024字節(jié))。 2.PROMPT變量 這個環(huán)境變量顯示用戶所設(shè)置的命令提示符。DOS系統(tǒng)提示符一般設(shè)置為顯示當(dāng)前驅(qū)動器和路徑后接一“>”符號,當(dāng)然也可以設(shè)置為其它類型的命令提示符,這個變量一般在AUTOEXECBAT文件中設(shè)置,命令使用的一般格式為: PROMPT $p$g 當(dāng)然,你也可以使用SET PROMPT=$p$g。 3.PATH變量 這個環(huán)境變量包括用PATH命令設(shè)置路徑,使DOS系統(tǒng)能在指定的目錄中搜索可執(zhí)行的文件。 4.DIRCMD變量 這個環(huán)境變量讓用戶確定DIR命令缺省使用的開關(guān)和參數(shù)集。用戶可在AUTOEXEC.BAT文件中或命令提示符下使用SET命令定義DIRCMD環(huán)境變量,預(yù)先設(shè)置DIR的參數(shù)和選項的合法組合(可包括路徑和文件名)。 例如,要把DIRCMD環(huán)境變量設(shè)置為滿屏?xí)r暫停(/P)為缺省格式,在AUTOEXEC.BAT批處理文件或DOS命令提示符下鍵入: SET DIRCMD=/P 這時使用DIR命令,在滿一屏?xí)r將暫停并提示“按任意鍵繼續(xù)”。 若不想使用這個缺省格式,可在命令行上使用: DIR/-P 如要清除此缺省設(shè)置,在命令提示符下鍵入: SET DIRCMD= 5.COPYCMD變量 用戶可以通過設(shè)置COPYCMD環(huán)境變量,指定COPY、MOVE、XCOPY命令是否先給出提示,經(jīng)確認后再覆蓋文件。 若強制要求COPY、MOVE、XCOPY命令在所有情況下均先給出提示: Overwrite Filename(YES/NO/ALL)? 就把COPYCMD環(huán)境變量設(shè)置成/-Y(SET COPYCMD=/-Y),用戶可以根據(jù)需 要來選擇是否覆蓋。也可以強制要求COPY、MOVE、XCOPY命令在所有情況下都不提示就進行覆蓋 , 則把COPYCMD環(huán)境變量設(shè)置成 /Y(SET COPYCMD=/Y)。這里所設(shè)置的COPYCMD環(huán)境變量,優(yōu)先于COPYCMD環(huán)境變量的所有缺省值和當(dāng)前值。 6.TEMP變量 TEMP是一個常用的環(huán)境變量,它告訴程序在何處建立臨時文件,而有一些程序需要使用環(huán)境變量來識別它們要使用的目錄。如下例: SET TEMP=C:DOS 在此例中,環(huán)境變量TEMP被DOS環(huán)境和一些其它程序使用,以確定當(dāng)前文件子目錄的位置。上面的目錄C:DOS被放入環(huán)境中,現(xiàn)在DOS系統(tǒng)知道把它們當(dāng)前的文件放在哪里。在AUTOEXEC.BAT文件中,用戶能夠也應(yīng)該設(shè)置環(huán)境的整個轉(zhuǎn)換。 環(huán)境變量與批處理文件的親密關(guān)系 使用環(huán)境變量可以控制某些批處理文件和使程序可按照用戶的意愿進行,可以控制MS-DOS顯示與工作的方式。一般在AUTOEXECBAT或CONFIGSYS文件中用SET命令設(shè)定用戶環(huán)境,以便每次啟動計算機時系統(tǒng)都能根據(jù)用戶需要自動設(shè)置環(huán)境變量。 1.在批處理文件中調(diào)用環(huán)境變量 從批處理文件中調(diào)用環(huán)境變量值時,必須用百分符(%)將變量值括起來。如設(shè)置名為WIN32的變量,使它等于字符串C:WindowsSYSTEM(C盤中的目錄),可鍵入以下命令: SET WIN32=C:WINDOWSSYSTEM 在批處理文件中可用%WIN32%代替C:WINDOWSSYSTEM。在批處理文件中包括以下命令,顯示C:WINDOWSSYSTEM環(huán)境變量的目錄內(nèi)容: DIR %WIN32% 當(dāng)MS-DOS處理該命令時,會用字符串C:WINDOWSSYSTEM代替%WIN32%。 2.在批處理文件中保存和恢復(fù)原有環(huán)境下的路徑 對每一個批處理文件,用戶都可以修改環(huán)境變量,而各個批處理文件需要不同的PATH指明路徑, 以執(zhí)行批處理下的程序,這就需要用戶保存原有環(huán)境下的路徑。用戶可在批處理文件中使用一個環(huán)境變量暫時存儲用戶原來的路徑,以便在需要時可以恢復(fù),而不需 要重新用PATH命令來設(shè)置: SET OLDPATH=%PATH% 例如某計算機的設(shè)置如下: SET OLDPATH=C:WINDOWS;C:; C:DOS;C:FOXPRO25; C:UCDOS; C:GYPC; C:CCED;C:HD; C:SARP 批處理文件解釋程序把%PATH%變量擴展成用戶的當(dāng)前路徑,故OLDPATH變量等于此路徑。如果此時系統(tǒng)因使用其它批處理文件而打亂了原系統(tǒng)路徑,可簡單地在批處理文件中使用下列語句恢復(fù)路徑的原貌,以滿足用戶對不同環(huán)境的需要。如下例: PATH %OLDPATH% 計算機顯示它的執(zhí)行情況: PATH C:WINDOWS;C:;C:DOS;C:FOXPRO25;C:UCDOS;C:GYPC;C:CCED;C:HD;C:SARP 其實,很多用戶都可能在各自的AUTOEXEC.BAT文件中存有“OLDPATH”變量,由于此環(huán)境變量總包含原有路徑的備份,因此可以很容易地恢復(fù)原有路徑。 小結(jié) 環(huán)境是DOS系統(tǒng)很重要的內(nèi)容之一,它是DOS系統(tǒng)保存重要信息供批處理文件使用的變量存儲區(qū)——一個高速暫存存儲器。它在此保存重要的信息,且用戶能把批處理文件的環(huán)境變量放入其中。 SET命令對環(huán)境而言是相當(dāng)重要的,它被用來給變量賦值、清除變量,并顯示環(huán)境內(nèi)容。 除了用戶生成環(huán)境變量(COMSPEC)給出COMMANDCOM的位置外,PATH設(shè)置系 統(tǒng)的搜索路徑;PROMPT設(shè)置系統(tǒng)提示符;COPYCMD環(huán)境變量指定COPY、MOVE、XCOPY命令是否對要覆蓋的文件進行提示;DIRCMD環(huán) 境變量可以預(yù)置DIR參數(shù)和開關(guān)項。 由于環(huán)境表相當(dāng)小,SHELL命令可用于擴大其容量,這雖然避免了“環(huán)境空間溢出(Out of environment space)”這個錯誤,但同時也多占了系統(tǒng)的RAM。 |
|
|