批处理文件中的匿名函数
匿名函数技术使用 CALL
命令在调用子例程时使用内部 GOTO
并使用可变双扩展滥用帮助消息打印的事实 :
@echo off
setlocal
set "anonymous=/?"
call :%%anonymous%% a b c 3>&1 >nul
if "%0" == ":%anonymous%" (
echo(
echo Anonymous call:
echo %%1=%1 %%2=%2 %%3=%3
exit /b 0
)>&3
只有在 CALL
之后定义了匿名函数(或者如果 CALL
在括号内执行,则在完成括号上下文后)。它不能从外部脚本调用,但比正常的函数调用慢。