比較詳細(xì)的手把手教你寫(xiě)批處理(willsort題注版)第4/5頁(yè)
更新時(shí)間:2008年09月03日 11:27:35 作者:
Climbing 兄可謂用心良苦,受其感昭,略緊微薄之力;原文內(nèi)容一字未易,僅于每段之下另加題注,其文大多非為糾錯(cuò),多是年來(lái)體會(huì),或偶得,或漸悟,未免偏頗;又加近來(lái)俗事漸多,閑情愈少,心浮氣燥,一蹴而就。義理悖逆,敬請(qǐng)斧正;措辭不當(dāng),尚請(qǐng)莫怪。
例:test.bat的內(nèi)容如下(注意,用if errorlevel判斷返回值時(shí),要按返回值從高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errotlevel 1 goto defrag
==== willsort 編注 =====================================================
errotlevel -> errorlevel
========================================================================
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此批處理運(yùn)行后,將顯示“defrag,mem,end[D,M,E]?” ,用戶(hù)可選擇d m e ,然后if語(yǔ)句根據(jù)用戶(hù)的選擇作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以goto end將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示good bye,批處理運(yùn)行結(jié)束。
四、for 循環(huán)命令,只要條件符合,它將多次執(zhí)行同一命令。
語(yǔ)法:
對(duì)一組文件中的每一個(gè)文件執(zhí)行某個(gè)特定命令。
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一個(gè)單一字母可替換的參數(shù)。
(set) 指定一個(gè)或一組文件。可以使用通配符。
command 指定對(duì)每個(gè)文件執(zhí)行的命令。
command-parameters
為特定命令指定參數(shù)或命令行開(kāi)關(guān)。
例如一個(gè)批處理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
則該命令行會(huì)顯示當(dāng)前目錄下所有以bat和txt為擴(kuò)展名的文件的內(nèi)容。
==== willsort 編注 =====================================================
需要指出的是, 當(dāng)()中的字符串并非單個(gè)或多個(gè)文件名時(shí), 它將單純被當(dāng)作字符串替換, 這個(gè)特性再加上()中可以嵌入多個(gè)字符串的特性, 很明顯 for 可以被看作一種遍歷型循環(huán).
當(dāng)然, 在 nt/2000/xp/2003 系列的命令行環(huán)境中, for 被賦予了更多的特性, 使之可以分析命令輸出或者文件中的字符串, 也有很多開(kāi)關(guān)被用于擴(kuò)展了文件替換功能.
========================================================================
--------------------------------------------------------
標(biāo)題:手把手教你寫(xiě)批處理-批處理示例
作者:佚名
編者:Climbing
出處:中國(guó)DOS聯(lián)盟之聯(lián)合DOS論壇
題注:willsort
日期:2004年11月10日
--------------------------------------------------------
[轉(zhuǎn)帖并完善]手把手教你寫(xiě)批處理
原文作者寫(xiě)東西很沒(méi)有專(zhuān)業(yè)精神,寫(xiě)的文章簡(jiǎn)直是錯(cuò)誤百出,而且啰里八索,如果不加以修改和完善,簡(jiǎn)直是誤人子弟,因此,我在原文的基礎(chǔ)上進(jìn)行了修改,修正了大部分錯(cuò)誤(當(dāng)然,不可避免可能會(huì)有新的錯(cuò)誤,希望高手發(fā)現(xiàn)后能夠及時(shí)指出來(lái))。
URL: http://www.txwm.com/News/technic/200408/2004081609515074304.html
摘自:天下網(wǎng)吧聯(lián)盟 作者:佚名
修改及完善:Climbing(xclimbing@msn.com)
最后修改日期:2004年8月19日
批處理示例
1. IF-EXIST
1) 首先用記事本在C:\建立一個(gè)test1.bat批處理文件,文件內(nèi)容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist
然后運(yùn)行它:
C:\>TEST1.BAT
如果C:\存在AUTOEXEC.BAT文件,那么它的內(nèi)容就會(huì)被顯示出來(lái),如果不存在,批處理就會(huì)提示你該文件不存在。
2) 接著再建立一個(gè)test2.bat文件,內(nèi)容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist
執(zhí)行:
C:\>TEST2 AUTOEXEC.BAT
該命令運(yùn)行結(jié)果同上。
說(shuō)明:
(1) IF EXIST 是用來(lái)測(cè)試文件是否存在的,格式為
IF EXIST [路徑+文件名] 命令
(2) test2.bat文件中的%1是參數(shù),DOS允許傳遞9個(gè)批參數(shù)信息給批處理文件,分別為%1~%9(%0表示test2命令本身) ,這有點(diǎn)象編程中的實(shí)參和形參的關(guān)系,%1是形參,AUTOEXEC.BAT是實(shí)參。
==== willsort 編注 =====================================================
DOS沒(méi)有 "允許傳遞9個(gè)批參數(shù)信息" 的限制, 參數(shù)的個(gè)數(shù)只會(huì)受到命令行長(zhǎng)度和所調(diào)用命令處理能力的限制. 但是, 我們?cè)谂幚沓绦蛑? 在同一時(shí)刻只能同時(shí)引用10個(gè)參數(shù), 因?yàn)?DOS只給出了 %0~%9這十個(gè)參數(shù)引用符.
========================================================================
相關(guān)文章
最新萬(wàn)能 DOS 啟動(dòng)盤(pán)制作全攻略(軟盤(pán)+光盤(pán)+U盤(pán)+硬盤(pán)+NTFS+應(yīng)急實(shí)用工具)
這篇文章主要給大家介紹了關(guān)于最新萬(wàn)能DOS啟動(dòng)盤(pán)制作全攻略,軟盤(pán)+光盤(pán)+U盤(pán)+硬盤(pán)+NTFS+應(yīng)急實(shí)用工具的相關(guān)資料,需要的朋友可以參考下2006-12-12dos命令行設(shè)置IE代理的實(shí)現(xiàn)代碼
這篇文章主要介紹了dos命令行設(shè)置IE代理的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-12-12windows下定時(shí)利用bat腳本實(shí)現(xiàn)ftp上傳下載
這篇文章主要為大家詳細(xì)介紹了windows下定時(shí)利用bat腳本實(shí)現(xiàn)ftp上傳和下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05BAT批處理實(shí)現(xiàn)軟件的自動(dòng)安裝(以搜狗拼音為例)
這篇文章主要介紹了BAT批處理實(shí)現(xiàn)軟件的自動(dòng)安裝(以搜狗拼音為例),本文以安裝搜狗拼音為例做個(gè)小實(shí)驗(yàn),其他軟件的安裝可以以此作為參考來(lái)實(shí)現(xiàn),需要的朋友可以參考下2015-06-06Cacls 顯示或修改任意訪(fǎng)問(wèn)控制列表 (DACL) 文件
Cacls 顯示或修改任意訪(fǎng)問(wèn)控制列表 (DACL) 文件...2007-09-09