在括號內移動引數
讓我們有以下 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