Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          批處理編程(3)變量
          ?
          ?
          在批處理中適當的引用變量將會使你所編制的程序應用面更廣。批處理每次能處理的變量從%0~%9共10個。其中%0默認給批處理的文件名使用。除非在使用SHIFT命令后%0才能被%1所替代。引用shift命令的例子如果把%1前面多加上一個%0那么結果如下:
          ?
          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
          ?
          系統是如何區分每個變量的呢,系統區分變量的規則為字符串中間的空格,即只要發現空格就把空格前面的字符當作一個變量而空格后面的字符則作為另一個變量。如果你的變量是一個當中包含空格的長目錄名這時候你需要用上一節特殊符號8中所用的引號將他圈起來。例:
          ?
          批處理內容為:
          ECHO %1
          ECHO %2
          ECHO %3
          ?
          輸入命令:
          C:\>TEST "Program Files" Program Files
          Program Files
          Program
          Files
          ?
          在一個復雜的批處理中又可能同時使用的變量會超過10個這時候會和系統的規則相沖突那么這個問題怎么解決呢?在系統中還有一種變量稱之為環境變量(使用 SET命令可以查看當前系統的環境變量)如當前系統目錄是%windir%或%SystemRoot%等。當同時使用的參數超過10個的時候,我們可以把某些在后面的程序中還要調用的變量保存為環境變量。具體用法如 SET A=%1 這樣我們就命名了一個新的環境變量A 在調用變量A的時候要%A%這樣調用,環境變量不受SHIFT命令影響。如果要改變一個環境變量需要重新對其設置才能改變。當然也可以進行變量與變量之間的傳遞來達到目的。下面我們來看一個例子,批處理如下:
          ?
          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個變量
          A B L ? 在使用了3次SHIFT之后%9變成了L
          B L ? 變量的傳遞后的結果
          ?
          ?
          注意:因為這個特性,所以在設定環境變量的時候,盡量不要以數字開頭,因為如果set a=6xb,當引用時echo %6xb% 語句,前面的%6會直接去取引用變量,而不再取成環境變量。
          ?
          ?
          posted on 2009-06-04 21:16 decode360 閱讀(305) 評論(0)  編輯  收藏 所屬分類: 02.Windows
          主站蜘蛛池模板: 三台县| 丹巴县| 咸宁市| 蒙阴县| 五指山市| 太白县| 海阳市| 紫云| 鹿邑县| 新竹县| 石城县| 临高县| 康乐县| 于田县| 林州市| 惠水县| 遵义县| 北碚区| 班戈县| 巫山县| 黎城县| 昆山市| 台湾省| 广饶县| 五大连池市| 石渠县| 汝阳县| 南漳县| 建平县| 勐海县| 曲阜市| 广宗县| 云浮市| 衢州市| 梓潼县| 迁安市| 东宁县| 缙云县| 乐都县| 奉贤区| 钟山县|