DOS基础使用专题(强烈推荐)2
DOS下硬件設備的使用與設置
????????由于電腦的普及和應用的日益深入,為了滿足人們的需要,電腦的功能隨著它的發展變得越來越強大,硬件設備也越來越多,如從原來的ISA及PCI聲卡、調制解調器等到現在的USB硬盤、鼠標等,而且品牌多種多樣。那么,我們應該如何在DOS下使用與設置這些設備呢?
????????其實有很多硬件設備在DOS下不需安裝任何的驅動程序,只要硬件或將BIOS設置好就可使用,如鍵盤,普通的硬盤和支持PCL(打印機控制語言)的打印機等。在DOS下使用支持PCL的打印機非常容易,因為打印機連接在并行端口(LPT)上,所以通常LPT1或PRN就是打印機端口。比如COPY??C:\CONFIG.SYS??LPT1命令(當然也可直接使用PRINT??C:\CONFIG.SYS命令)就可將C:\CONFIG.SYS文件中的內容用打印機打印出來。大家看,是不是很方便呢?當然,要在一些DOS應用程序中打印出更好的效果(如各種字體,圖像等),還需要專門的打印機驅動程序,在這些應用程序中的“打印機設置”中選擇合適的打印機即可。
????????和打印機類似的是調制解調器。調制解調器是電腦撥號上網時的必用設備,分為內置和外置兩大類。外置調制解調器通常接在電腦的串行端口(通信端口COM)上,如COM2。傳統的內置調制解調器通常也可以自動虛擬串行端口,所以和外置調制解調器的使用相差不大。DOS下有大量與調制解調器有關的通信程序,如果調制解調器接在COM3上,使用這些程序時使用COM3就行了。如果您想在DOS下用簡單的命令測試一下調制解調器,可用ECHO??ATDT12345>COM3(假設調制解調器連在COM3上),這時它就會撥號(12345),使用也非常方便。然而,隨著硬件的發展,許多非傳統的新型調制解調器出現了。這些新型調制解調器沒有硬件控制器,需要用軟件虛擬,所以叫軟件調制解調器,或叫WinModem。原來ISA接口的調制解調器大多是傳統的硬件調制解調器,而PCI接口的調制解調器則有許多是軟件調制解調器。軟件調制解調器和硬件調制解調器相比,由于沒有硬件控制器,所以成本要低些,但是性能自然要差些,而且需要驅動程序才可運行。所以,在DOS下必須裝載相應的驅動程序才可使用。但由于這些調制解調器主要是為Win9x設計的,所以大多都沒有DOS下驅動程序,所以無法在純DOS下使用,不過有很多調制解調器通過虛擬可在Win9x的DOS窗口下使用。
????????再談談大家經常使用的鼠標與光驅。由于鼠標和光驅較早就廣泛使用了,所以DOS自帶它們的驅動程序或擴展程序,如MOUSE和MSCDEX,不過MSCDEX還需要光驅的自帶驅動程序。然而,隨著DOS的發展,這些程序已越來越不實用了,現已有很好的替代程序,如最新最好的鼠標驅動程序Cute??Mouse(CTMOUSE)。CTMOUSE是一個仍在開發中的非常實用的鼠標驅動程序,和DOS自帶的或其它鼠標驅動程序相比,它具有無可比擬的優點,如速度非常快,占用內存非常小(才3.3K),通用性非常強,以及有多種語言顯示(暫無中文,不過如果大家喜歡的話我可以去漢化)等優點,因此我強烈推薦大家使用,可在“DOS軟件”中下載。DOS下通用的光驅程序也有很多,如Win98自帶的DOS啟動盤中OAKCDROM等。但最好的是“驅動程序”中的PTSATAPI.SYS或VIDE-CDD.SYS,因為它具有速度快,占用內存小(分別才占用2K和5K,而OAKCDROM需占30多K,其它的則占得更多),通用性非常強(可驅動各種品牌非USB的CD-ROM/CD-R/CD-RW/DVD-ROM/DVD-R/DVD-RW,我所試的光驅用它無一驅動失敗)。具體的安裝方法是在CONFIG.SYS中先用DEVICE(HIGH)命令加載此光驅驅動程序,然后再在AUTOEXEC.BAT中加載光驅擴展程序MSCDEX.EXE,如:LH??MSCDEX??/D:CDROM1??/S??/K。不過,如果您希望讓系統自動安裝設置光驅而不想手工配置的話,可運行VIDE-CDD.SYS中自帶的全屏幕安裝程序,這樣就會覺得安裝起來十分輕松了。為了節省內存,還可以將CLOAKING與MSCDEX合用,這樣可極大的減少MSCDEX的內存占用,大家可見本欄目中的“DOS下內存的配置”及“CONFIG.SYS文件的命令與配置”以獲得具體配置情況。至于USB的鼠標與光驅,請見下文。
????????現在電腦已進入了多媒體時代,故聲音和圖像都是不可缺少的,因此,聲卡顯得十分重要。那么,在DOS下如何使用聲卡呢?在DOS下使用聲卡最重要的一點是需將BLASTER環境變量設置成正確的值,比如SET??BLASTER=A220??I7??D1??H6??P330??T6等,其中A表示硬件地址,I表示中斷號,D表示低端DMA,H表示高端DMA,P表示MPU401的地址,T表示聲卡類型。A通常為220,I則主要有5和7兩種可能,P經常是330,T則對應著您的聲卡的類型(T1表示SB??1.0,T2表示SB??1.5,T3表示SB??2.0,T4表示低版本的SB??Pro及其兼容,如ESS688等,T5表示高版本的SB??Pro,T6表示SB??16及其兼容,如SB??AWE及SB??PCI等)。對于ISA聲卡,通常使用自動設置的值即可,比如ESS688聲卡的默認值是A220??I5??D1??T4,也可以使用自帶的設置程序如ESSCFG重新設置;對于PCI聲卡,有的可以使用SB-Link技術,其它的大多可以使用自帶的驅動程序虛擬ISA聲卡以使用,如SB??PCI,SB??Audigy,SB??Live!,C-Media??8738,SiS??7018等PCI聲卡的驅動程序可在“驅動程序”中下載,Yamaha及Aopen等聲卡也可使用其自帶的驅動程序以實現在純DOS下使用PCI聲卡,或者在Windows的DOS窗口中使用。要想設置PCI聲卡的設置參數,可以使用自帶的設置程序,如SB??Live!聲卡的驅動程序中就有SBECFG命令,或者編輯它的配置文件,如SB??PCI的驅動程序中的SBPCI.INI文件。
????????接下來就是網卡和顯卡了。網卡的情況比較特殊,各網絡環境需要各自的網卡驅動程序。對于ISA網卡,由于絕大多數是NE2000兼容,所以可以使用NE2000網卡的驅動程序,可在“DOS軟件”中下載。網卡自帶的磁盤中多有很多文件夾,分別是各網絡環境的單獨驅動程序,如MSCLIENT或NDIS2文件夾上是用于Microsoft??Network??Client(MSCLIENT)及LAN??Manager的網卡驅動程序,NWCLIENT或DOSODI文件夾上則是用于Netware的網卡驅動程序。以Netware??Lite為例,要啟動IPX/SPX協議,需首先加載LSL.COM,然后是網卡的ODI驅動程序,如SIS900網卡的是SIS900.COM,加載完后再運行IPXODI.COM即可。而對于MSCLIENT,SIS900網卡的驅動程序是SIS900.DOS,網絡啟動時會自動加載。當然,網卡還是有個標準的用于DOS下上Internet的驅動程序,那就是網卡的Packet驅動程序。其具體的使用方法,可見本欄目中的“DOS下聯網的方法”。對于顯卡,不像Windows,DOS下不需要專門的驅動程序即可顯示高彩色甚至真彩色的文字及圖像,但有顯示擴展驅動程序,如VESA??3.0顯示驅動程序Scitech??Display??Doctor等,可在“DOS軟件”中下載。
????????然后就是USB硬件設備的使用了。許多人認為DOS下無法使用USB設備,其實不然。新的BIOS中就有“USB??for??DOS”功能,還有不少的DOS下USB設備驅動程序,如DUSE,USB_CD等,可在“DOS軟件”中下載。以DUSE為例,這是一個DOS下通用的USB存儲設備的驅動程序,包括USB硬盤,光驅,軟驅等,許多人利用它成功地驅動了自己的USB設備,如USB的CD-RW等;OHCI/UHCI則分別為OHCI/UHCI類型的USB鼠標驅動程序;USB_CD則是一個單獨的USB光驅驅動程序;USB4DOS則提供DOS下使用各種USB設備(如USB打印機、USB數碼相機等)的功能。不過我沒有USB設備,所以還沒有用過。歡迎大家使用它們,并將使用結果告訴我,謝謝!
????????近些年來還出現了不少新的硬件,DOS下也完全可以使用它們。以ATX電源為例,DOS下的一些軟件就可以利用它來實現軟關機,如ShutDown,PowerOff等命令,可在“DOS軟件”中下載。DOS下用這些軟件來實現軟關機有很多好處,比如用在批處理文件中時可指定在運行完某程序后或在指定的時間自動關機,還可以實現網絡中的“遠程喚起”等功能,好處多多。由此可見DOS的強大功能了。如果大家喜歡DOS的話,不如來參加“DOS開發”欄目以開發出新的DOS軟件,共同讓DOS繼續發展壯大吧!
--------------------------------------------------------------------------------
DOS系統的維護
????????一個系統只有進行好的維護,才能發揮出好的效果。那么,對于DOS系統,應當如何維護呢?
????????首先,要定期檢查磁盤的錯誤。DOS下有許多命令可以用來檢查磁盤,如CHKDSK,SCANDISK等。而一個更強大的磁盤工具則是Norton的Disk??Doctor(磁盤醫生),它有著友好的界面和強大的功能,可在本站的“磁盤工具”中下載。只有定期檢查磁盤,才能保證磁盤使用的穩定性。
????????其次,要定期檢查病毒。計算機病毒是一種能嚴重危害系統安全和數據完整的破壞性程序,如果任其發作,可能會造成嚴重的損失。所以,定期檢查病毒是非常重要和必要的。要檢查病毒,需要使用好的殺病毒軟件,而且注意經常升級病毒庫,否則起不到應有的效果。實用的DOS下殺毒軟件有F-PROT,Norton??AntiVirus,KV3000等,尤其是前面的F-PROT和NAV,皆由世界著名的大公司推出,而且正在不斷地更新,所以效果非常好,可以在本站的“殺毒軟件”中下載。然而,由于新的病毒是在不斷地出現的,所以應定期下載這些殺毒軟件的新的病毒庫,以達到最好的較果。當然,光使用殺毒軟件,卻不注意防范,也是不行的。防毒通常比殺毒更有效,因為防毒可以大大減少病毒感染的可能性。防毒的方法有多種,如使用病毒防火墻程序,不要使用來歷不明的軟件等。通過這些方法,病毒通常無法侵入。
????????然后,要定期備份重要的數據。因為即使采用了前面的兩種措施,也只能大大降低數據被破壞的可能性,而不是高枕無憂了。由于誤操作或硬件故障等原因造成的數據丟失情況隨時都可能發生。因此,備份數據就十分必要了。通常可將它們備份到軟盤或其它硬盤中以防不測,以免到時后悔莫及。對于磁盤分區表和引導記錄等,也應該備份下來,很多工具都可以做到,如SRC??Tools、BFHF等等。尤其是SRC??Tools,使用起來非常方便,可以在本站的“磁盤工具”中下載,本站的“DOS文章”欄目中還有它的詳細使用方法介紹的文章。
????????當然,還需要進行一些其它維護,如定期整理磁盤碎片,刪除垃圾文件,以及將文件和軟件歸類以方便使用等。
????????對于系統配置的維護也是非常重要的,也可以使用一些工具軟件來進行自動維護,如用MEMMAKER等。這樣可以有效地節省時間和精力
DOS下內存的配置
????????我們大家都知道,DOS大體上不能夠完全依靠人機界面的方式來一步步地完成系統的配置。若要讓系統發揮出最大的性能,必須依靠我們的進一步努力。下面介紹一下DOS內存的配置方法。
????????實模式的DOS通常只能使用1M以下的內存空間。其中基本內存為640K,而上位內存則需要相應的內存管理器。基本內存的管理尤為重要,因為使用不當會造成一些程序無法運行。那么,應如何優化使用它呢?這兒有一些建議。
????????首先,加載提供上位內存(UMB)的內存管理器。通常有EMM386和QEMM等,不過這些工具自身占用的內存較大,在此推薦的是UMBPCI,這是一個仍在發展的工具,可提供最大高達162K的UMB,而且如果放在HIMEM前可完全不占用基本內存。然后,將所有的設備驅動程序/TSR調入UMB(用DEVICEHIGH,LOADHIGH等),這樣,即使加載許多驅動程序(如光驅,鼠標等),剩下的基本內存仍會很高,甚至630K。要注意的是,盡量使用占內存較少的驅動程序,以便空出最多的UMB。
????以下是在我的電腦上(MS-DOS??7.10)用MEM/A/C命令顯示出的內存狀態信息:
Modules??using??memory??below??1??MB:
Name??????????????????????Total????????????????Conventional??????????Upper??Memory
--------??----------------??----------------??----------------
SYSTEM????????????32,736????(32K)????????????9,664??????(9K)??????23,072????(23K)
HIMEM????????????????1,168??????(1K)????????????????????0??????(0K)????????1,168??????(1K)
SETVER??????????????????864??????(1K)????????????????????0??????(0K)????????????864??????(1K)
VIDE-CDD??????????5,024??????(5K)????????????????????0??????(0K)????????5,024??????(5K)
CLOAKING??????????1,168??????(1K)????????????????????0??????(0K)????????1,168??????(1K)
IFSHLP??????????????2,864??????(3K)????????????????????0??????(0K)????????2,864??????(3K)
COMMAND????????????7,424??????(7K)????????????????????0??????(0K)????????7,424??????(7K)
KILLER??????????????????400??????(0K)????????????????????0??????(0K)????????????400??????(0K)
WATCH????????????????3,392??????(3K)????????????????????0??????(0K)????????3,392??????(3K)
MSCDEX??????????????2,816??????(3K)????????????????????0??????(0K)????????2,816??????(3K)
DOSKEY??????????????5,744??????(6K)????????????????????0??????(0K)????????5,744??????(6K)
CTMOUSE????????????3,344??????(3K)????????????????????0??????(0K)????????3,344??????(3K)
ZENO??????????????????1,376??????(1K)????????????????????0??????(0K)????????1,376??????(1K)
ESCAPE??????????????????496??????(0K)????????????????????0??????(0K)????????????496??????(0K)
Free??????????????750,080??(732K)????????645,328??(630K)????104,752??(102K)
Memory??Summary:
Type??of??Memory????????????Total??????????????Used????????????????Free
----------------??-----------??-----------??-----------
Conventional??????????????????655,360????????????10,032??????????645,328
Upper????????????????????????????????163,904????????????59,152??????????104,752
Reserved??????????????????????????393,216??????????393,216??????????????????????0
Extended??(XMS)????????49,119,168????????????82,880????49,036,288
----------------??-----------??-----------??-----------
Total??memory????????????50,331,648??????????545,280????49,786,368
Total??under??1??MB??????????819,264????????????69,184??????????750,080
Largest??executable??program??size????????????645,312??(630K)
Largest??free??upper??memory??block????????????103,952??(102K)
Available??space??in??High??Memory??Area????????????5,360??(5K)
MS-DOS??is??resident??in??the??high??memory??area.
從上表中可以看出,我加載了以下內存駐留程序及驅動程序:
HIMEM:DOS中自帶的XMS驅動程序。
SETVER:DOS版本表程序。
VIDE-CDD:通用光驅驅動程序。如果您的光驅是USB的,則用DUSE。
CLOAKING:內存CLOAKING??API及DPMS驅動程序,以節省MSCDEX的內存占用。
IFSHLP:32位的磁盤服務程序,用于Windows??9x中,可以不加載。
COMMAND:DOS命令處理器。
KILLER:自動截獲不正確的指令,防止死機。
WATCH:TSR??Utils中的一個,DISABLE命令利用它可以禁止其它TSR程序的功能。
MSCDEX:和CLOAKING程序合用的MSCDEX,只占不到3K內存,否則要占約30K。
DOSKEY:DOS自帶的鍵盤緩沖和歷史程序。
CTMOUSE:DOS下通用的鼠標驅動程序,占內存小,速度也非常快。
ZENO:顯示加速程序。
ESCAPE:在任何時候都可以按F12鍵退回到DOS方式下,以防止死機。
當然,我還加載了不少非內存駐留程序。如果您想知道我的CONFIG.SYS文件中的具體設置內容,可看下面的“CONFIG.SYS文件的命令與配
CONFIG.SYS文件的命令與配置
????????CONFIG.SYS是DOS系統中的一個重要文件,它的配置直接影響到系統的使用及其效率。如果配置不當的話,可能很多程序都無法正常運行。因此,正確合理地配置CONFIG.SYS文件是十分必要和重要的。下面我向大家介紹一下CONFIG.SYS中的命令及其配置方法。
CONFIG.SYS中的命令:注意:所有以HIGH結尾的命令(如DEVICEHIGH)表示將其調入UMB(上位內存),但有些這樣的命令(如FILESHIGH)必須在MS-DOS??7.x版本中使用。
ACCDATE:指定對每一個驅動器是否記錄文件最后被訪問的日期。
用法:ACCDATE=??驅動器??1+|-??[??驅動器??2+|-]...
如:ACCDATE=C+??D+??E+將在C,D,E盤中記錄文件最后被訪問的日期。
此命令僅用于MS-DOS??7.x中。
BREAK:設置或清除擴展的CTRL+C檢查。
用法:BREAK=ON|OFF
BUFFERS/BUFFERSHIGH:為指定數量的磁盤緩沖區分配內存。
用法:BUFFERS=磁盤緩沖區數量,[從屬高速緩存中的緩沖區數量]
DEVICE/DEVICEHIGH:將指定的設備驅動程序裝入內存。
用法:DEVICE/DEVICEHIGH??文件名??[參數]
其中,文件名是文件的完整路徑,如C:\DOS\HIMEM.SYS。
DOS:用于DOS系統的配置,如是否使用HMA(高端內存區)等。
用法:DOS=[HIGH|LOW][,UMB|,NOUMB][,AUTO|,NOAUTO][,SINGLE]
其中,HIGH和LOW表示使用HMA或不使用HMA,UMB和NOUMB表示使用UMB或不使用UMB,AUTO或NOAUTO表示系統自動配置或不自動配置,SINGLE表示使用單一模式的DOS。其中,AUTO/NOAUTO和SINGLE僅用于MS-DOS??7.x中。
DRIVPARM:設置現有物理設備的參數。
注:此命令用得很少,我也沒用過,所以暫時跳過。
FCBS/FCBSHIGH:指定可以同時打開的文件控制塊??(FCB)??的數量。
用法:FCBS/FCBSHIGH=可以同時打開的FCB的數量。
注:由于FCB主要是在DOS??1.x中使用,對于高版本,所以可以讓系統自動配置。
FILES/FILESHIGH:指定??可以同時訪問的文件數量。
用法:FILES/FILESHIGH=可以同時訪問的文件數量。
注:一般FILES/FILESHIGH的設置值在30左右比較合適。
INSTALL/INSTALLHIGH:用于加載TSR(內存駐留程序)。
用法:INSTALL/INSTALLHIGH=文件名??[參數]
如:INSTALLHIGH=C:\DOS\DOSKEY.COM??/APPEDIT
LASTDRIVE/LASTDRIVEHIGH:指定可以訪問的驅動器的最后有效的驅動器字母。
用法:LASTDRIVE=驅動器字母
如LASTDRIVE=F會將F設置成最后有效的驅動器字母。
NUMLOCK:指定啟動時NUMLOCK指定燈是否打開。
用法:NUMLOCK=ON|OFF
REM:添加注解。
用法:REM??[注解字符串]
注:注解中的字符串只是用來增加可讀性,將不被執行。
SET:設計DOS環境變量。
用法:SET??變量=[變量值]
SHELL:指定DOS??使用的命令解釋程序的名稱和位置。
用法:SHELL=文件名??[參數]
注:文件名默認是COMMAND.COM,您也可以指定其它的文件,如4DOS.EXE等。
STACK/STACKHIGH:指定使用的堆棧數量。
用法:STACK/STACKHIGH=堆棧數量,每個堆棧的大小
注:通常指定的值是9,256,這個值可以滿足大多數的需求。
SWITCHES:指定一些特殊選項。
用法:SWITCHES=[/W]??[/F]??[/K]??[/N]??[/E[:n]]
其它的是一些菜單配置命令,如MENUITEM,MENUCOLOR等。
在MS-DOS??7.x中還有一些未公開命令,如LOGO,COMMENT等。
????????知道了以上的命令后,就要談談如何利用這些命令來配置CONFIG.SYS文件了。配置的好壞對系統的影響是非常大的。以下是我的電腦(都是MS-DOS??7.10)中CONFIG.SYS文件中的內容,大家可以用作參考。
電腦一,使用EMM386.EXE:
device=d:\dos\echo.sys??L/o/a/d/i/n/g??CONFIG.SYS...
device=d:\dos\himem.sys
device=d:\dos\emm386.exe??noems??novcpi??i=b600-b7ff
devicehigh=d:\dos\mdctools\setver.exe
devicehigh=d:\dos\ifshlp.sys
devicehigh=d:\dos\vide-cdd.sys??/d:IDE-CD
devicehigh=d:\dos\cloaking.exe
country=086,936,d:\dos\country.sys
shell=c:\command.com??/p??/e:640
set??temp=e:\temp
set??tmp=e:\temp
accdate=c+??d+??e+
dos=high,umb,auto
numlock=off
files=30
buffershigh=30,0
fcbshigh=4,0
lastdrivehigh=n
stackshigh=9,256
電腦二,使用UMBPCI.SYS:
device=d:\dos\echo.sys??L/o/a/d/i/n/g??CONFIG.SYS...
device=d:\dos\echo.sys
device=d:\dos\umbpci.sys
device=d:\dos\hiram.exe
devicehigh=d:\dos\himem.sys
devicehigh=d:\dos\setver.exe
devicehigh=d:\dos\ifshlp.sys
devicehigh=d:\dos\vide-cdd.sys??/d:IDE-CD
shell=d:\dos\command.com??/p??/e:640
set??temp=e:\temp
set??tmp=e:\temp
accdate=c+??d+??e+
dos=high,umb,auto
country=086
numlock=off
fileshigh=30
buffershigh=30,0
stackshigh=9,256
lastdrivehigh=n
??????您不妨試試,相信您也會做出好的CONFIG.SYS文件來。
--------------------------------------------------------------------------------
DOS批處理文件
????????DOS下的可執行文件有三種,分別是EXE,COM和BAT。其中,EXE和COM文件都是二進制形式的,只有BAT文件是文本形式的,可以直接閱讀。因此,BAT文件和以上二進制可執行文件相比,內容要簡單的多。這些文件內包含著DOS命令的集合,通常叫作批處理文件。批處理文件的組成雖然比較簡單,但其用處非常大,使用也比較廣泛。比如每次都執行一些相同的命令,您一定會覺得非常麻煩,而放在批處理文件中執行的話則輕松得多。AUTOEXEC.BAT就是一個特殊的批處理文件,它在DOS的啟動時自動運行,在系統的配置中發揮著非常大的作用。因此,要學好DOS,就要學好批處理文件。下面介紹批處理文件的命令及其使用。
DOS自帶的批處理命令:
@:將這個符號放在批文件中其它命令的前面,運行時將不顯示命令本身。
如@ECHO??OFF命令就在批文件首經常用到。
CALL:從一個批文件中調用另一個批文件,調用完后繼續執行原來的批文件。
用法:CALL??[批文件名]
注:也可以使用COMMAND??/C命令完成同樣的操作。
CHOICE:選擇命令。這是一個DOS外部命令,但它主要用在批文件中。
CHOICE命令執行后將提示可選擇的項目,這時通過一個按鍵來選則。
用法:CHOICE:[/C[:]按鍵表]??[/N]??[/S]??[/T[:]選擇值,秒數]??[顯示文本]
其中,/C表示可選則的按鍵,/N表示不要顯示提示信息,/S表示大小寫字符敏感方式,/T表示若在批定的時間內沒有選則的話,自動執行/C中定義的某個選擇值。顯示文本是CHOICE命令執行時的提示信息。選擇結果將用ERRORLEVEL值來表示。
ECHO:顯示指定的信息。通常顯示在屏幕上。
如ECHO??Hello將在屏幕上顯示Hello的字樣。
另外,ECHO??ON|OFF用來設置在批文件執行時是否顯示命令本身。而ECHO??OFF與@的意思一樣,但它是一個單獨的命令,而不能像@那樣放在其它命令之前。
FOR:對于指定的文件運行相應的命令。
大家知道,DOS下許多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件內容顯示命令)就不支持。有了FOR命令就沒有關系了,利于它可以使TYPE命令可以一次顯示多個文件。
用法:FOR??%變量名??IN??(文件集)??DO??命令??[命令參數]
注:以上是FOR命令的固定形式,IN和DO的位置必須正確,否則將提示語法錯誤。
如FOR??%F??IN??(*.*)??DO??TYPE??%F命令就可以實現TYPE命令一次顯示多個文件。
注:%F是變量名,也可用%G等代替,但前后必須一致。在批文件中用%%F代替。
GOTO:轉到批文件內部的某個標號下執行。
大家知道,在編程中往往需要重復或跳轉到某個地方繼續執行,如BASIC語言中的GOTO命令。批文件中的GOTO命令也可以完成類似的功能。
用法:GOTO??[標號名]
其中,標號名是可以隨意設置的,如Hello等。設置標號用“:”符號,如“:Hello”,這時用GOTO??Hello命令將轉到“:Hello”所在的位置繼續執行批文件。
IF:條件判斷命令。這是一項很有用的批處理命令。
用法1:IF??[NOT]??EXIST??文件名??命令??[命令參數]
意義:如果[不]存在某個文件將執行某個命令。
用法2:IF??[NOT]??ERRORLEVEL??錯誤返回代號??命令??[命令參數]
意義:如果錯誤返回代號[不]大于或等于指定的代號將執行某個命令。
其中,ERRORLEVEL表示錯誤返回代號,很有用。對于很多DOS命令,由于執行的結果不同(如執行成功,執行失敗,或被用戶中斷等),這些命令會返回不同的代號,以表示不同的結果。IF??ERRORLEVEL命令就根據這個不同結果而產生的不同代號來執行不同的命令,通常用在某條命令之后。如IF??ERRORLEVEL??1??ECHO??OK!表示如果當前的錯誤返回代號大于或等于1時將在屏幕上顯示“OK!”的字樣。
用法3:IF??[NOT]??字符串1==字符串2??命令??[命令參數]??
意義:當字符串1和字符串2[不]相等的時候執行某個命令。
PAUSE:暫停批文件的執行,并顯示“按任意鍵繼續”的字樣。
REM:添加注解。用于增加文件可讀性,將不被執行。也可以用::來代替。
SHIFT:在批文件中改變可替換參數的位置。
可替換參數是一種特殊的參數,只能用在批文件中。這些參數是由使用者在執行批處理命令時輸入的。比如,我們執行DIR??/S??/W命令,其中DIR是命令名,/S和/W是它的執行參數。在批文件中,這些命令參數將被分別賦予到可替換參數中,如/S就成的%1,/W就可了%2,以至類推,而命令本身則被賦予%0中。批文件就是利用可替換參數對執行時輸入的參數來進行操作的。比如現在有個批處理文件叫MYFILE.BAT,在命令行下執行MYFILE.BAT??YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判斷出%1等參數的值,然后根據這些值的不同執行不同的操作,如IF??"%1"=="YES"??GOTO??YES。
SHIFT命令不帶任何參數,執行結果是將%0的值換成原%1的值,而原%1的值變成的原%2的值,以此類推。注意它的不可逆轉性。因為批處理文件執行時的運行參數可能很多,可能會超過10個,而可替換參數只能從%0到%9,若想取得%9以后的參數值,只能使用SHIFT命令。這時,整個參數列將向前推。
????????以上是DOS的自帶批處理命令,可以看出,這些命令是非常少的,若要編寫較復雜的程序,用以上的命令顯然不可能實現。這時就需要其它實用的批處理工具了,著名且實用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS軟件分類下載”中的“腳本工具”中下載。在批處理文件中使用以上的工具可以實現非常強大的功能,甚至可以完成許多高級語言程序的功能。所以,如果您想編者按寫批處理文件的話,它們是您不錯的選擇,不僅有詳細的文檔,而且還在不斷發展中。
????????下面就要談批處理文件的制作了。其實制作批處理文件并不難,只要掌握了方法就行了。隨著您操作次數的增多,您會覺得越來越容易的。
????????首先使用一個文本編輯器,如DOS自帶的EDIT命令或其它的編輯工具,如PEDIT等新建一個空白文件(當然,用COPY??CON命令直接創建也行),然后在其中根據您想完成的功能輸入批處理命令。如果您只是想執行一些的DOS命令的集合,則按順序在每行輸入一個DOS命令就行了。但如果您是想完成一些更復雜的操作,就需要以上的批處理命令或上述的批處理工具了。
????????以下是我原來所編的一個從1%慢慢增加到100%的批處理小程序,大家可以用作參考,以編寫自己的程序。
@echo??off
break??off
cls
set??c=0
writext??10??1??Wait...
be??delay??4
:loop
writext??10??9??%c%%%completed.
count??c
if??not??%c%==101??goto??loop
echo.
set??c=
kpush??/f
break??on
????????其中,我用到了WRITEXT,COUNT,BE和KPUSH,這些都是批處理工具。WRITEXT是ECHO的增強工具,可以自定義顯示的效果。COUNT是變量的計算工具,如原來C的值為1,執行COUNT??C后C的值就為2。BE是個強大的批處理增強工具,在Norton??Utilties??8.0中帶有。KPUSH是鍵盤緩沖工具。
????????總之,利用批處理命令和批處理增強工具,我們可以編出許多強大的批處理文件來,大家不妨一試。許多批處理工具可以在“腳本工具”中下載。
--------------------------------------------------------------------------------
DOS未公開命令與參數
????????DOS系統中有許多未公開的命令與參數。我經過收集整理,發現了很多。由于DOS的有好幾種,所以下面僅以MS-DOS為例,介紹一下常用命令中的未公開的命令與參數。經過比較,我發現在MS-DOS的各版本中,7.x版中的未公開命令與參數是最多的,這些7.x版本中的未公開命令與參數在其它DOS版本中通常是沒有的,但卻是非常實用的,例如COMMAND??/Z命令,這是用DOS自帶的命令顯示ERRORLEVEL(錯誤返回代碼)值的唯一方法(當然,用其它的附加工具,如ERR2ENV等也可以做到)。
DOS未公開命令:
TRUENAME:用于顯示實際的路徑,對SUBST等命令很有用。
INSTALLHIGH:用在CONFIG.SYS中,將文件調入UMB。
LOGO和COMMENT:僅用在MS-DOS??7.x中的CONFIG.SYS中,用法未知。
DOS未公開參數:
COMMAND??/F??使Fail作為Abort,Retry,Fail中的默認選項。
COMMAND??/D??在DOS5中是禁止AUTOEXEC.BAT自動執行;在6.0+版本中是禁止/F參數。
COMMAND??/Z??顯示ERRORLEVEL(錯誤返回代碼)信息。
COMMAND??/T??在MS-DOS??7.x中強制將COMMAND.COM永久性調入常規內存。
FORMAT??/AUTOTEST??自動完成格式化過程。
FORMAT??/BACKUP??自動完成格式化過程,并提示輸入卷標。
FORMAT??/SELECT??只在磁盤上備份系統區數據,相當于MIRROR程序。
FORMAT??/SELECT??/U??將引導區和文件分配表用F6H填之。
FORMAT??/Z:n??設置FAT32分區上的簇大小。
FDISK??/MBR??重寫硬盤主引導記錄。
FDISK??/CMBR??drive??重寫指定驅動器上的主引導記錄。
FDISK??/PRI:size??創建主分區。
FDISK??/EXT:size??創建擴展分區。
FDISK??/LOG:size??在擴展分區上創建邏輯驅動器。
FDISK??/PRMT|/Q??提示行動/安靜模式。
FDISK??/PARTN??將分區表信息保存到PARTSAV.FIL中。
FDISK??/ACTOK??用于MS-DOS??7.x中,跳過完整性測試。
FDISK??/FPRMT??用于MS-DOS??7.x中,自動采用FAT32,并跳過提示信息。
DOSKEY??/APPEDIT??使DOSKEY也應用于其它程序(如DEBUG等)中。
DOSKEY??/COMMAND和/PERMANENT和/SCRSIZE和/XHISTORY??用法未知。
SCANDISK??/CLIP??用于MS-DOS??7.x中,將長文件名剪為短文件名。
SCANDISK??/NOLOST??用于MS-DOS??7.x中,不提示表面測試或丟失簇。
SCANDISK??/NOUI和/TEXT??用于MS-DOS??7.x中,使用標準的DOS界面。
SCANDISK??/MOUNT??相當于SCANDISK.INI中的Mount=Always。??
SCANDISK??/TIME??相當于SCANDISK.INI中的ScanTimeOut=On。
QBASIC??/QHELP??進入DOS的全屏幕幫助系統,相當于執行HELP命令。
QBASIC??/EDCOM??進入DOS的文件編輯器,相當于執行EDIT命令。
MEM??/A或MEM??/ALL??顯示HMA信息。
VER??/R??顯示擴展的版本信息。
DIR??/Z??用于MS-DOS??7.x中,表示不顯示長文件名。
DEVICE=HIMEM.SYS??/Q??當HIMEM.SYS加載時使用安靜模式。
DEVICE=EMM386.EXE??NOTR??不要檢測Token??Ring網絡適配器。
DOS未公開用法:
IF??EXIST??XMSXXXX0??...??此命令可以判斷當前是否安裝了XMS內存管理器(通常是HIMEM.SYS)。注意:是XMSXXXX0,而不是有些文章中提到的錯誤的XMMXXXX0.
IF??EXIST??EMMXXXX0??...??此命令則用來判斷當前是否安裝了EMS內存管理器(通常是EMM386.EXE)。
::??此符號可在批處理文件中代替REM注解命令,可以加快運行速度。
以上是MS-DOS中的未公開命令與參數,其中有些是非常實用的,大家不妨一試
總結
以上是生活随笔為你收集整理的DOS基础使用专题(强烈推荐)2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark GraphX 图算法的理解
- 下一篇: MacOs使用IDEA自带的maven教