电竞比分网-中国电竞赛事及体育赛事平台

分享

DOS環(huán)境變量“全家?!?/span>

 pengx 2009-04-21
    環(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
  PROMPT=$p$g
   PATH=C:WINDOWS;C:;C:DOS;C:FOXPRO25;C:UCDOS;C:GYPC;C:CCED;C:HD;C:SARP
   TEMP=C:DOS 

  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
   1B41:0020  90 09 

  數(shù)據(jù)90 09是在某系統(tǒng)上得到的計算機環(huán)境的段地址值(用戶在操作時應(yīng)以實際顯示數(shù)為準),把這兩對數(shù)以相反的順序,并在后面跟上偏移量0,就能在DEBUG命令上顯示系統(tǒng)環(huán)境。如下例: 

  -D0990:0
   0990:0000 43 4F 4D 53 50 45 43 3D-43 3A 5C 43 4F 4D 4D 41 COMSPEC=C:COMMA
   0990:0010 4E 44 2E 43 4F 4D 00 50-52 4F 4D 50 54 3D 24 70 ND.COM.PROMPT=$p
   0090:0020 24 67 00 50 41 54 48 3D-43 3A 5C 57 49 4E 44 4F $g.PATH=C:WINDO
   0990:0030 57 53 3B 43 3A 5C 3B 43-3A 5C 44 4F 53 3B 43 3A WS;C:;C:DOS;C:
   0990:0040 5C 46 4F 58 50 52 4F 32-35 3B 43 3A 5C 55 43 44 FOXPRO25;C:UCD
   0990:0050 4F 53 3B 43 3A 5C 47 59-50 43 3B 43 3A 5C 43 43 OS;C:GYPC;C:CC
   0990:0060 45 44 3B 43 3A 5C 48 44-3B 43 3A 5C 53 41 52 50 ED;C:HD;C:SARP
   0990:0070 00 54 45 4D 50 3D 43 3A-5C 44 4F 53 00 00 01 00 .TEMP=C:DOS... 

  從上面所顯示的環(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)能正常運行,用戶還需在CONFIGSYS文件中加上這樣一句: 

  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è)置為其它類型的命令提示符,這個變量一般在AUTOEXECBAT文件中設(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顯示與工作的方式。一般在AUTOEXECBAT或CONFIGSYS文件中用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)給出COMMANDCOM的位置外,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。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多