Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

批處理進階指令:setlocal 實現環境變數區域化管理

編輯:系統常見問題解答

setlocal 指令用於在批處理檔中啟動環境變數的區域化(本地化)。區域化效力持續到遇到對應的 endlocal 或批處理檔結束為止,確保腳本內的變數修改不污染全域環境。

語法結構

setlocal {enableextensions | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}

參數詳解

參數功能說明
enableextensions啟用命令擴展,直到遇到對應的 endlocal,無視腳本前的設定。
disableextensions禁用命令擴展,直到遇到對應的 endlocal。
enabledelayedexpansion啟用延遲環境變數擴展(即 !var! 語法),直到遇到對應的 endlocal。
disabledelayedexpansion禁用延遲環境變數擴展,直到遇到對應的 endlocal。

實戰範例

以下腳本示範如何區域化修改 PATH 僅影響當前批處理與呼叫的子程式:

rem *******Begin Comment*******
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file in Notepad.
rem *******End Comment*******
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out

執行流程:
1. setlocal 開啟區域環境。
2. 修改 path 僅在區域內生效。
3. call superapp 繼承區域環境。
4. endlocal 結束區域,原全域 PATH 恢復。
5. 最後用記事本開啟輸出檔。

setlocal 指令說明圖解
Copyright © Windows教程網 All Rights Reserved