複製鏈接
請複製以下鏈接發送給好友

setlocal

鎖定
setlocal是指批處理本地化的一種操作,使啓動批處理文件中環境變量的本地化。本地化將持續到出現匹配的 endlocal 命令或者到達批處理文件結尾為止。 [1] 
外文名
setlocal
功    能
批處理本地化操作
使用系統
Windows
適用領域
計算機

setlocal命令簡介

開始批處理文件中環境改動的本地化操作。在執行 SETLOCAL 之後所做的環境改動只限於批處理文件。要還原原先的設置,必須執行 ENDLOCAL。達到批處理文件結尾時,對於該批處理文件的每個尚未執行的 SETLOCAL 命令,都會有一個隱含的 ENDLOCAL 被執行。

setlocal語法

setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion} [1] 

setlocal參數

enableextensions
啓用命令擴展,直到出現匹配的 endlocal 命令,無論 setlocal 命令之前的設置如何。
disableextensions
禁用命令擴展,直到出現匹配的 endlocal 命令,無論 setlocal 命令之前的設置如何。
注1:在XP中並沒有看到命令擴展的使用.
enabledelayedexpansion
啓用變量延遲,直到出現匹配的 endlocal 命令,無論 setlocal 命令之前的設置如何。
disabledelayedexpansion
禁用變量延遲,直到出現匹配的 endlocal 命令,無論 setlocal 命令之前的設置如何。
使用setlocal讓變量本地化
運行批處理文件時使用 setlocal 更改環境變量。運行 setlocal 後所做的環境更改是批處理文件的本地更改。cmd.exe 在遇到 endlocal 命令或者到達批處理文件的結尾時將恢復上一次的設置。 [1] 

setlocal注意事項

使用setlocal
當在批處理文件以外使用setlocal時,不會有任何作用。
更改環境變量
使用setlocal更改環境變量參數時,環境在你運行完批處理後改變。當批處理末尾沒有endlocal參數時cmd.exe將恢復之前的設置。批處理中可以有多個setlocal和endlocal。 [1] 

setlocal使用舉例

可以使用如下的批處理來本地化環境變量:
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out [1] 
參考資料
  • 1.    setlocal  .Microsoft TechNet技術支持[引用日期2014-07-17]