最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DOS 批處理 setlocal命令、endlocal命令詳解

 更新時間:2024年06月09日 13:07:05   作者:揚科網(wǎng)絡  
setlocal這是一個命令,它開始局部化環(huán)境更改,通常在批處理文件中使用,以確保在腳本中所做的任何環(huán)境更改(例如設置或修改環(huán)境變量)不會影響到調(diào)用此批處理的上下文或其他批處理文件

在 cmd (Windows 命令提示符) 腳本中,@setlocal 是一個常用的組合命令,由兩部分組成:@ 和 setlocal。

  • @:在腳本中,@ 用于阻止命令的顯示。通常,在執(zhí)行批處理文件時,每一行命令都會被顯示出來。當你在一行命令前加上 @,這行命令就不會在命令提示符窗口中顯示出來。這經(jīng)常用于使腳本的輸出更加干凈、整潔。
  • setlocal:這是一個命令,它開始局部化環(huán)境更改。通常在批處理文件中使用,以確保在腳本中所做的任何環(huán)境更改(例如設置或修改環(huán)境變量)不會影響到調(diào)用此批處理的上下文或其他批處理文件。當腳本執(zhí)行完畢,使用 endlocal 命令可以結束這種局部環(huán)境,恢復所有的環(huán)境設置到 setlocal 之前的狀態(tài)。

因此,@setlocal 的組合用途是在批處理文件的開始部分使環(huán)境更改局部化,同時不顯示這條命令本身。這是編寫批處理腳本時的一種常見做法,以確保腳本不會無意中修改全局環(huán)境設置。

一、setlocal命令

命令格式

setlocal  [ enableExtensions | disableExtensions ] [ enableDelayedExpansion | disableDelayedExpansion ]

命令功能

setlocal 命令用于開始批處理文件中環(huán)境變量的本地化。本地化將持續(xù)到出現(xiàn)匹配的 endlocal 命令, 或者到達批處理文件結尾為止。

【enableExtensions參數(shù)】 

 啟用cmd.exe的命令擴展開特性。extension是“擴大,延伸”的意思

【disableExtensions參數(shù)】 

 關閉cmd.exe的命令擴展特性。

【enableDelayedExpansion參數(shù)】 

開啟cmd.exe的變量延遲展開特性。expansion是“擴展,展開”的意思

【disableDelayedExpansionn參數(shù)】 

關閉cmd.exe的變量延遲展開特性。 

【注意】

enableExtensions參數(shù)、disableExtensions參數(shù)相比 cmd.exe的 /E參數(shù),它們具有更高的優(yōu)先級。
enableDelayedExpansion參數(shù)、 disableDelayedExpansion參數(shù)相比 cmd.exe的 /V參數(shù),它們具有更高的優(yōu)先級。

二、endlocal命令

命令格式:

endlocal 

命令功能:

endlocal 命令用于結束批處理文件中環(huán)境變量的本地化。

【“環(huán)境變量本地化”的作用】

在批處理文件中實現(xiàn)“環(huán)境變量本地化”,可以避免其對外部運行環(huán)境的“污染”

示例

demo1.bat的內(nèi)容如下:

::demo1.bat
@echo off
set  var=200

demo2.bat的內(nèi)容如下:

::demo2.bat
@echo off
setlocal
set  var=200
endlocal

運行

C:\>set var=5
 
C:\>demo1
C:\out>echo %var%
200
 
C:\>set var=5
 
C:\>demo2
C:\>echo %var%

C:\>

總結

setlocal命令和endlocal命令在批處理文件中有效(在dos命令行環(huán)境中無效)
setlocal命令執(zhí)行以前的所有變量狀態(tài)(例如:變量值), 在endlocal命令(或者批處理文件)執(zhí)行完后會被恢復
在setlocal和endlocal(或者批處理文件的結尾處)之間,如果定義了新變量,在執(zhí)行 endlocal命令后,該變量會被刪除(即:其值為空)
在setlocal和endlocal(或者批處理文件的結尾處)之間,可以正常使用setlocal命令執(zhí)行以前的所有變量(包括外部dos命令行環(huán)境定義的變量)
無參的setlocal命令和帶參的setlocal命令(例如:setlocal enabledelayedexpansion)都遵守上述規(guī)則
無參的setlocal命令只對變量所做的修改進行本地化,不會影響其作用域(setlocal和endlocal(或者批處理文件的結尾處)之間的局域空間)的命令擴展特性和變量延遲展開特性。
編寫批處理腳本時,為了不“污染”外部運行環(huán)境,同時對自己的運行環(huán)境進行“默認設置”,應該在批處理腳本中使用setlocal命令(和endlocal命令),下面是一個比較常用的“批處理腳本模板”

::demo.bat
@echo off
setlocal enableExtensions 
::    your  code ...
endlocal

寫作不易,如果您覺得對您有用

相關文章

最新評論

独山县| 曲水县| 革吉县| 米脂县| 临猗县| 沁阳市| 云霄县| 凌海市| 高陵县| 电白县| 青州市| 长海县| 罗田县| 乌兰察布市| 邵东县| 富裕县| 丰都县| 张家港市| 石景山区| 汉川市| 尉犁县| 朝阳市| 双峰县| 邹平县| 凤城市| 十堰市| 安龙县| 景宁| 丰镇市| 忻城县| 姚安县| 天镇县| 宜章县| 兰考县| 吉林市| 顺昌县| 垦利县| 浦江县| 大兴区| 锦屏县| 财经|