返回列表 上一主題 發帖

[分享] BAT批次指令:SETLOCAL 的功能介紹

[分享] BAT批次指令:SETLOCAL 的功能介紹

BAT批次指令:SETLOCAL 的功能介紹

SETLOCAL : 在批次檔中屬於中文版環境的開頭已變更。

指令詳解:

在 SETLOCAL 之後所做的環境變更已送出,ENDLOCAL 必須送出,才能還原到上次的設定值。
在到達批次指令的結尾時,批次指令對每個未處理完成的  SETLOCAL 指令都會發出 ENDLOCAL 的執行指令

SETLOCAL

如果您啟用命令擴充,SETLOCAL 的變更如下:

SETLOCAL 批次命令現在可接受一個選項引數,這個引數可為:
        ENABLEEXTENSIONS / DISABLEEXTENSIONS
            啟用或停用命令處理擴充功能。
            請用 CMD /? 來查看說明。
        ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
           啟用或停用延遲環境變數擴充功能。
           請用 SET /? 來查看說明。
這些修正命令作用會持續到對應 ENDLOCAL 命令為止,而不管
它們的設定是否在 SETLOCAL 命令之前。

SETLOCAL 命令將會設定 ERRORLEVEL 的數值,但必須給予一個
引數。兩個有效引數之中如果給了一個,而另一個未給時,它的
數值將變為零。您可以在批次指令檔中使用此命令以決定是否有
可使用的擴充功能,請使用下列的
語法:

    VERIFY OTHER 2>nul
    SETLOCAL ENABLEEXTENSIONS
    IF ERRORLEVEL 1 回應無法啟用擴充功能

這在舊版的 CMD.EXE 中可正常運作,因為 SETLOCAL 並不會設定 RRORLEVEL 值。
用了錯誤引數的 VERIFY 命令會將 ERRORLEVEL 值起始為一個非零的值。
東風

        靜思自在 : 有時當思無時苦,好天要積雨來糧。
返回列表 上一主題