Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
          批處理編程(3)變量
          ?
          ?
          在批處理中適當(dāng)?shù)囊米兞繉?huì)使你所編制的程序應(yīng)用面更廣。批處理每次能處理的變量從%0~%9共10個(gè)。其中%0默認(rèn)給批處理的文件名使用。除非在使用SHIFT命令后%0才能被%1所替代。引用shift命令的例子如果把%1前面多加上一個(gè)%0那么結(jié)果如下:
          ?
          C:\>SHIFT.BAT 1 2 3 4 5 6 7 8 9 10 11
          SHIFT.BAT 1 2 3 4 5 6 7 8 9
          1 2 3 4 5 6 7 8 9 10
          2 3 4 5 6 7 8 9 10 11
          ?
          系統(tǒng)是如何區(qū)分每個(gè)變量的呢,系統(tǒng)區(qū)分變量的規(guī)則為字符串中間的空格,即只要發(fā)現(xiàn)空格就把空格前面的字符當(dāng)作一個(gè)變量而空格后面的字符則作為另一個(gè)變量。如果你的變量是一個(gè)當(dāng)中包含空格的長(zhǎng)目錄名這時(shí)候你需要用上一節(jié)特殊符號(hào)8中所用的引號(hào)將他圈起來。例:
          ?
          批處理內(nèi)容為:
          ECHO %1
          ECHO %2
          ECHO %3
          ?
          輸入命令:
          C:\>TEST "Program Files" Program Files
          Program Files
          Program
          Files
          ?
          在一個(gè)復(fù)雜的批處理中又可能同時(shí)使用的變量會(huì)超過10個(gè)這時(shí)候會(huì)和系統(tǒng)的規(guī)則相沖突那么這個(gè)問題怎么解決呢?在系統(tǒng)中還有一種變量稱之為環(huán)境變量(使用 SET命令可以查看當(dāng)前系統(tǒng)的環(huán)境變量)如當(dāng)前系統(tǒng)目錄是%windir%或%SystemRoot%等。當(dāng)同時(shí)使用的參數(shù)超過10個(gè)的時(shí)候,我們可以把某些在后面的程序中還要調(diào)用的變量保存為環(huán)境變量。具體用法如 SET A=%1 這樣我們就命名了一個(gè)新的環(huán)境變量A 在調(diào)用變量A的時(shí)候要%A%這樣調(diào)用,環(huán)境變量不受SHIFT命令影響。如果要改變一個(gè)環(huán)境變量需要重新對(duì)其設(shè)置才能改變。當(dāng)然也可以進(jìn)行變量與變量之間的傳遞來達(dá)到目的。下面我們來看一個(gè)例子,批處理如下:
          ?
          ECHO OFF
          SET PASS=%1
          SHIFT
          SET PASS1=%1
          SHIFT
          ECHO %PASS% %PASS1% %1 %2 %3 %4 %5 %6 %7 %8 %9
          SHIFT
          ECHO %PASS% %PASS1% %9
          SET PASS=%PASS1% ?? 變量的傳遞
          SET PASS1=%9
          SHIFT
          ECHO %PASS% %PASS1% %9
          ?
          使用命令:
          C:\>TEST A B 3 4 5 6 7 8 9 10 K L
          A B 3 4 5 6 7 8 9 10 K ?? 注意:這一行顯示了11個(gè)變量
          A B L ? 在使用了3次SHIFT之后%9變成了L
          B L ? 變量的傳遞后的結(jié)果
          ?
          ?
          注意:因?yàn)檫@個(gè)特性,所以在設(shè)定環(huán)境變量的時(shí)候,盡量不要以數(shù)字開頭,因?yàn)槿绻鹲et a=6xb,當(dāng)引用時(shí)echo %6xb% 語句,前面的%6會(huì)直接去取引用變量,而不再取成環(huán)境變量。
          ?
          ?
          posted on 2009-06-04 21:16 decode360 閱讀(317) 評(píng)論(0)  編輯  收藏 所屬分類: 02.Windows
          主站蜘蛛池模板: 桐柏县| 东安县| 井冈山市| 漳平市| 祁连县| 马尔康县| 孟津县| 正定县| 阳东县| 布尔津县| 墨脱县| 温州市| 广元市| 韩城市| 巨鹿县| 宁武县| 海林市| 双峰县| 双流县| 五指山市| 永川市| 茂名市| 长乐市| 神池县| 乌拉特后旗| 上杭县| 繁峙县| 江油市| 万全县| 甘洛县| 平湖市| 重庆市| 萍乡市| 盐亭县| 西青区| 抚顺市| 大悟县| 梅州市| 若尔盖县| 顺义区| 阜平县|