一個動態的標籤。如果我要打電話:從bar.bat中foo foo.bat我做的:如何調用不同的.bat文件
::foo.bat
echo.wont be executed
exit /b 1
:foo
echo foo from foo.bat
exit /b 0
和
::bar.bat
call :foo
exit /b %errorlevel%
:foo
foo.bat
echo.will also not be executed
但是,如果我不知道標籤的名稱,但把它作爲一個參數我堅持
::bar.bat
:: calling a dynamic label is no problem
call :%~1
exit /b %errorlevel%
::don't know how to "catch-all" or set context of "current-label"
:%~1
foo.bat
在解析變量或參數引用之前,解析器會逐字地搜索標籤,因此您不能在標籤中使用這樣的標籤...... – aschipfl
會出現'If Not'%〜1「==」「Call:%〜1' help? – Compo
恐怕我不理解你的擔憂。要調用動態標籤,只需使用'call:%〜1'形式。但是,應該很明顯,第一個批處理文件中必須存在這樣的標籤! (也在第二個)。如果你想調用第二個批處理文件_always_(不管該參數),只需要將該參數傳遞給第二個批處理文件:'call foo.bat%1'並使用'goto%〜'開始'foo.bat' 1'(除非你想讓事情更復雜)。 – Aacini