<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
    批處理編程(1) 專(zhuān)用命令
    ?
    ?
    批處理文件是將一系列命令按一定的順序集合為一個(gè)可執(zhí)行的文本文件,其擴(kuò)展名為BAT。這些命令統(tǒng)稱(chēng)批處理命令,下面我就來(lái)給大家介紹一下批處理的命令。
    ?
    ?
    1、REM
    ?
    REM 是個(gè)注釋命令一般是用來(lái)給程序加上注解的,該命令后的內(nèi)容在程序執(zhí)行的時(shí)候?qū)⒉粫?huì)被顯示和執(zhí)行。例:
    REM 你現(xiàn)在看到的就是注釋
    ?
    REM 你現(xiàn)在看到的就是注解,這一句將不會(huì)被執(zhí)行。在以后的例子中解釋的內(nèi)容都會(huì)放在REM后面。請(qǐng)大家注意。
    ?
    ?
    2、ECHO
    ?
    ECHO 是一個(gè)回顯命令,主要參數(shù)有OFF和ON,一般用ECHO message來(lái)顯示一個(gè)特定的消息。例:
    ?
    Echo off
    Rem 以上代表關(guān)閉回顯即不顯示所執(zhí)行的命令
    Echo 這個(gè)就是消息。
    Rem 以上代表顯示“這就是消息”這列字符
    ?
    執(zhí)行結(jié)果:
    ---------------
    C:\>ECHO.BAT
    這個(gè)就是消息。
    ?
    ?
    3、GOTO
    ?
    GOTO 即為跳轉(zhuǎn)的意思。在批處理中允許以“:XXX”來(lái)構(gòu)建一個(gè)標(biāo)號(hào)然后用GOTO :標(biāo)號(hào)直接來(lái)執(zhí)行標(biāo)號(hào)后的命令。例
    ?
    :LABEL
    REM 上面就是名為L(zhǎng)ABEL的標(biāo)號(hào)。
    DIR C:\
    DIR D:\
    GOTO LABEL
    REM 以上程序跳轉(zhuǎn)標(biāo)號(hào)LABEL處繼續(xù)執(zhí)行。
    ?
    ?
    4、CALL
    ?
    CALL 命令可以在批處理執(zhí)行過(guò)程中調(diào)用另一個(gè)批處理,當(dāng)另一個(gè)批處理執(zhí)行完后再繼續(xù)執(zhí)行原來(lái)的批處理。例:
    ?
    2.BAT
    ---------------
    ECHO 這就是2的內(nèi)容
    ?
    1.BAT:
    ---------------
    @echo off
    ECHO 這是1的內(nèi)容
    CALL 2.BAT
    ECHO 1和2的內(nèi)容全部顯示完成
    ?
    執(zhí)行結(jié)果如下:
    ---------------
    C:\>1.BAT
    這是1的內(nèi)容
    這就是2的內(nèi)容
    1和2的內(nèi)容全部顯示完成
    ?
    ?
    5、PAUSE
    ?
    PAUSE 停止系統(tǒng)命令的執(zhí)行并顯示下面的內(nèi)容。例:
    C:\> PAUSE
    請(qǐng)按任意鍵繼續(xù) . . .
    ?
    ?
    6、IF
    ?
    IF 條件判斷語(yǔ)句,語(yǔ)法格式如下:
    ??? IF [NOT] ERRORLEVEL number command
    ??? IF [NOT] string1==string2 command
    ??? IF [NOT] EXIST filename command
    ?
    說(shuō)明:
    [NOT]:將返回的結(jié)果取反值即“如果沒(méi)有”的意思。
    ERRORLEVEL:是命令執(zhí)行完成后返回的退出值
    Number:退出值的數(shù)字取值范圍0~255。判斷時(shí)值的排列順序應(yīng)該又大到小。返回的值大于或等于指定的值時(shí)條件成立。
    string1==string2:string1和string2都為字符的數(shù)據(jù),英文字符的大小寫(xiě)將看做不同,這個(gè)條件中的等于號(hào)必須是2個(gè)(絕對(duì)相等),條件想等后即執(zhí)行后面的command
    EXIST filename:為文件或目錄存在的意思。
    注:IF ERRORLEVEL這條語(yǔ)句必須放在某一個(gè)命令后面。執(zhí)行命令后由IF ERRORLEVEL來(lái)判斷命令的返回值。
    ?
    ??? 例:
    ??? 1、IF [NOT] ERRORLEVEL number command
    ?
    ??? 檢測(cè)命令執(zhí)行完后的返回值做出判斷。
    ?
    ??? echo off
    ??? dir z:\
    ??? rem 如果退出代碼為1(不成功)就跳至標(biāo)題1處執(zhí)行
    ??? IF ERRORLEVEL 1 goto 1
    ??? rem 如果退出代碼為0(成功)就跳至標(biāo)題0處執(zhí)行
    ??? IF ERRORLEVEL 0 goto 0
    ??? :0
    ??? echo 命令執(zhí)行成功!
    ??? Rem 程序執(zhí)行完畢跳至標(biāo)題exit處退出
    ??? goto exit
    ??? :1
    ??? echo 命令執(zhí)行失敗!
    ??? Rem 程序執(zhí)行完畢跳至標(biāo)題exit處退出
    ??? goto exit
    ??? :exit
    ??? Rem 這里是程序的出口
    ?
    ??? 2、IF string1==string2 command
    ?
    ??? 檢測(cè)當(dāng)前變量的值做出判斷
    ?
    ??? ECHO OFF
    ??? IF %1==2 goto no
    ??? Echo 變量相等!
    ??? Goto exit
    ??? :no
    ??? echo 變量不相等
    ??? goto exit
    ??? :exit
    ?
    ??? 大家可以這樣看效果 C:\>test.bat 數(shù)字
    ?
    ??? 3、IF [NOT] EXIST filename command
    ?
    ??? 發(fā)現(xiàn)特定的文件做出判斷
    ?
    ??? echo off
    ??? IF not EXIST autoexec.bat goto 1
    ??? echo 文件存在成功!
    ??? goto exit
    ??? :1
    ??? echo 文件不存在失敗!
    ??? goto exit
    ??? :exit
    ?
    ??? 這個(gè)批處理大家可以放在c盤(pán)和d盤(pán)分別執(zhí)行看看效果。
    ?
    ?
    7、FOR
    ?
    FOR這個(gè)命令比較特殊是一個(gè)循環(huán)執(zhí)行命令的命令,同時(shí)FOR的循環(huán)里面還可以套用FOR在進(jìn)行循環(huán)。這篇我們介紹基本的用法就不做套用的循環(huán)了,后面再來(lái)講解套用的循環(huán)。
    ?
    在批處理中FOR的命令如下:
    FOR [%%c] IN (set) DO [command] [arguments]
    ?
    在命令行中命令如下:
    FOR [%c] IN (set) DO [command] [arguments]
    ?
    常用參數(shù):
    ?
    /L 該集表示以增量形式從開(kāi)始到結(jié)束的一個(gè)數(shù)字序列。因此,(1,1,5) 將產(chǎn)生序列 1 2 3 4 5,(5,-1,1) 將產(chǎn)生序列 (5 4 3 2 1)。
    /D 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
    /F 從指定的文件中讀取數(shù)據(jù)作為變量
    ??? eol=c - 指一個(gè)行注釋字符的結(jié)尾(就一個(gè))
    ??? skip=n - 指在文件開(kāi)始時(shí)忽略的行數(shù)。
    ??? delims=xxx - 指分隔符集。這個(gè)替換了空格和跳格鍵的默認(rèn)分隔符集。
    ??? tokens=x,y,m-n - 指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的 for 本身。這會(huì)導(dǎo)致額外變量名稱(chēng)的分配。m-n格式為一個(gè)范圍。通過(guò) nth 符號(hào)指定 mth。如果符號(hào)字符串中的最后一個(gè)字符星號(hào),那么額外的變量將在最后一個(gè)符號(hào)解析之后分配并接受行的保留文本。
    ??? usebackq - 指定新語(yǔ)法已在下類(lèi)情況中使用:在作為命令執(zhí)行一個(gè)后引號(hào)的字符串并且一個(gè)單引號(hào)字符為文字字符串命令并允許在 filenameset中使用雙引號(hào)擴(kuò)起文件名稱(chēng)。
    ?
    下面來(lái)看一個(gè)例子:
    ?
    FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
    ?
    ??? 會(huì)分析 myfile.txt 中的每一行,忽略以分號(hào)打頭的那些行,將每行中的第二個(gè)和第三個(gè)符號(hào)傳遞給 for 程序體;用逗號(hào)和/或空格定界符號(hào)。請(qǐng)注意,這個(gè) for 程序體的語(yǔ)句引用 %i 來(lái)取得第二個(gè)符號(hào),引用 %j 來(lái)取得第三個(gè)符號(hào),引用 %k來(lái)取得第三個(gè)符號(hào)后的所有剩余符號(hào)。對(duì)于帶有空格的文件名,您需要用雙引號(hào)將文件名括起來(lái)。為了用這種方式來(lái)使用雙引號(hào),您還需要使用 usebackq 選項(xiàng),否則,雙引號(hào)會(huì)被理解成是用作定義某個(gè)要分析的字符串的。
    ??? %i 專(zhuān)門(mén)在 for 語(yǔ)句中得到說(shuō)明,%j 和 %k 是通過(guò)tokens= 選項(xiàng)專(zhuān)門(mén)得到說(shuō)明的。您可以通過(guò) tokens= 一行指定最多 26 個(gè)符號(hào),只要不試圖說(shuō)明一個(gè)高于字母 'z' 或'Z' 的變量。請(qǐng)記住,F(xiàn)OR 變量名分大小寫(xiě),是通用的;而且,同時(shí)不能有 52 個(gè)以上都在使用中。
    ?
    ??? 您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,用單引號(hào)將括號(hào)之間的 filenameset 括起來(lái)。這樣,該字符串會(huì)被當(dāng)作一個(gè)文件中的一個(gè)單一輸入行。最后,您可以用 FOR /F 命令來(lái)分析命令的輸出。方法是,將括號(hào)之間的 filenameset 變成一個(gè)反括字符串。該字符串會(huì)被當(dāng)作命令行,傳遞到一個(gè)子 CMD.EXE,其輸出會(huì)被抓進(jìn)內(nèi)存,并被當(dāng)作文件分析。因此,以下例子:
    ?
    FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
    ?
    會(huì)枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱(chēng)。
    ?
    ?
    以下列舉一個(gè)簡(jiǎn)單的例子,他將說(shuō)明參數(shù)/L和沒(méi)有參數(shù)的區(qū)別:
    ?
    刪除文件1.TXT 2.TXT 3.TXT 4.TXT 5.TXT
    ?
    例:
    ?
    ECHO OFF
    FOR /L %%F IN (1,1,5) DO DEL %%F.TXT
    FOR %%F IN (1,2,3,4,5) DO DEL %%F.TXT
    ?
    以上2條命令執(zhí)行的結(jié)果都是一樣的如下:
    C:\>DEL 1.TXT
    C:\>DEL 2.TXT
    C:\>DEL 3.TXT
    C:\>DEL 4.TXT
    C:\>DEL 5.TXT
    ?
    ?
    8、SETLOCAL
    ?
    開(kāi)始批處理文件中環(huán)境改動(dòng)的本地化操作。在執(zhí)行 SETLOCAL 之后 所做的環(huán)境改動(dòng)只限于批處理文件。要還原原先的設(shè)置,必須執(zhí) 行ENDLOCAL。 達(dá)到批處理文件結(jié)尾時(shí),對(duì)于該批處理文件的每個(gè) 尚未執(zhí)行的 SETLOCAL 命令,都會(huì)有一個(gè)隱含的 ENDLOCAL 被 執(zhí)行。例:
    ?
    @ECHO OFF
    SET PATH
    REM 察看環(huán)境變量PATH
    PAUSE
    SETLOCAL
    SET PATH=E:\TOOLS
    REM 重新設(shè)置環(huán)境變量PATH
    SET PATH
    PAUSE
    ENDLOCAL
    SET PATH
    ?
    從上例我們可以看到環(huán)境變量PATH第1次被顯示得時(shí)候是系統(tǒng)默認(rèn)路徑。被設(shè)置成了E:\TOOLS后顯示為E:\TOOLS但當(dāng)ENDLOCAL后我們可以看到他又被還原成了系統(tǒng)的默認(rèn)路徑。但這個(gè)設(shè)置只在該批處理運(yùn)行的時(shí)候有作用。當(dāng)批處理運(yùn)行完成后環(huán)境變量PATH將會(huì)還原。
    ?
    ?
    9、SHIFT
    ?
    SHIFT命令可以讓在命令上的的命令使用超過(guò)10個(gè)(%0~%9)以上的可替代參數(shù)例:
    ?
    ECHO OFF
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
    SHIFT
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
    SHIFT
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
    ?
    執(zhí)行結(jié)果如下:
    C:\>SHIFT.BAT 1 2 3 4 5 6 7 8 9 10 11
    1 2 3 4 5 6 7 8 9
    2 3 4 5 6 7 8 9 10
    3 4 5 6 7 8 9 10 11
    ?
    ?
    ?
    以上就是基于WIN2000下的9個(gè)批處理命令。?
    ?
    ?
    posted on 2009-06-02 22:25 decode360 閱讀(338) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 02.Windows
    主站蜘蛛池模板: 伊人久久五月丁香综合中文亚洲| 久久综合AV免费观看| 国产精品亚洲а∨无码播放不卡 | 亚洲视频免费在线看| 亚洲福利在线播放| 成年女人免费v片| 18以下岁毛片在免费播放| 国产一区二区三区免费观在线| 理论亚洲区美一区二区三区| 亚洲大香伊人蕉在人依线| 久久久久久久久亚洲| 久久精品亚洲福利| 内射无码专区久久亚洲| 女人18毛片免费观看| 999在线视频精品免费播放观看| 久草视频在线免费看| 日本三级在线观看免费| 久久性生大片免费观看性| 精品国产日韩亚洲一区91| 国产成人亚洲综合一区| 亚洲AV成人噜噜无码网站| 亚洲国产成人精品无码区在线秒播 | 亚洲精品动漫人成3d在线| 成人毛片免费在线观看| 91免费播放人人爽人人快乐| 人妻丰满熟妇无码区免费| 精品一区二区三区免费| 曰批全过程免费视频在线观看无码| 国产成人精品免费视频大全| 日韩毛片免费一二三| 一级毛片在线免费视频| 日本黄页网址在线看免费不卡| 日韩毛片在线免费观看| 日日躁狠狠躁狠狠爱免费视频| 特级做a爰片毛片免费看| 香蕉视频在线观看免费| 一二三区免费视频| 中文字幕免费人成乱码中国| 久草免费福利在线| 免费国产成人α片| 6080午夜一级毛片免费看|