在批次檔中,用SET設定的變數是全域變數,使用SETLOCAL來指定開始設定區域變數,用ENDLOCAL來結束設定區域變數。
在前面文章提到的SET指令,是用來自訂變數,這個自訂的變數會在批次檔結束之後,繼續存在,直到啟動該批次檔的cmd.exe結束之後,自訂的變數才會消失。
所以如果要定義區域變數可用SETLOCAL,例如要把 您好! 這幾個字存在自訂的區域變數 HELLO,可以在[命令提示字元]視窗打入
SETLOCAL
SET HELLO=您好!
要顯示自訂變數就跟上一篇講的方法一樣,在變數的前後加上%:
ECHO %HELLO%
執行結果:
您好!
要結束設定區域變數,就打入:
ENDLOCAL
PS:如果直接在[命令提示字元]視窗使用SETLOCAL跟ENDLOCAL來定義區域變數,會發現這些自訂的區域變數根本就是全域變數,所以區域變數要在批次檔內使用,才能發揮應有的效果。
例如批次檔內容:
SETLOCAL
SET HELLO=您好!
ECHO %HELLO%
ENDLOCAL
ECHO %HELLO%
執行結果:
C:\>SETLOCAL
C:\>SET HELLO=您好!
C:\>ECHO 您好!
您好!
C:\>ENDLOCAL
C:\>ECHO
ECHO 已啟動。