在括號內移動引數
讓我們有以下 example.bat 並用引數 1,2 和 3 呼叫它:
@echo off
(
    shift
    shift
    echo %1
)
由於變數擴充套件將在到達末端括號上下文後發生變化,因此輸出將為:
1
因為當在括號內移動來訪問引數時,這可能是一個問題,你需要使用呼叫:
@echo off
(
    shift
    shift
    call echo %%1
) 
現在輸出將是 3。使用 CALL 命令(這將導致額外的變數擴充套件)使用此技術,引數訪問也可以引數化:
@echo off
set argument=1
    shift
    shift
    call echo %%%argument%
延遲擴張:
@echo off
setlocal enableDelayedExpansion
set argument=1
    shift
    shift
    call echo %%!argument!
輸出將是
3