You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

支持超8个I/O参数的Batch通用N参数宏模板求校验与优化建议

Batch 支持超8个任意数量I/O参数的通用宏实现

我编写了一款可支持最多N个I/O参数(参数数量可超过8个)的通用宏,现将该实现分享出来,一方面希望大家帮忙校验功能正确性,另一方面也希望收集大家的建议对其进行优化。

具体代码如下:

:: 定义回车符CR
for /f %%C in ('copy /Z "%~dpf0" nul') do set "CR=%%C"

:: 定义换行符LF
set LF=^


:: 上面必须留2个空行,不要删除

:: 定义带续行功能的换行标识
:: 旧版换行定义写法更复杂:set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
:: 以下是新版简化写法
(set \n=^^^
%=EMPTY=%
)

set @{macroNparIOTemplate}=for %%. in (1 2) do if %%.==2 (for %%L in ("!LF!") DO ( %\n%
    set /a "I=1" %\n%
    for /f "tokens=* delims=" %%1 in ("!args: =%%~L!") do (%\n%
        set "par.!I!=!%%1!" %\n%
        set /a "I+=1" %\n%
      )%\n%
      %= 宏逻辑开始位置 =% %\n%
      %= 宏逻辑结束位置 =% %\n%
      endlocal ^&(%\n%
        %= 以下是需要跨endlocal屏障传递的输出参数 =% %\n%
        set "out1=value1"%\n%
        set "out2=value2"%\n%
      )%\n%
)) else setlocal EnableDelayedExpansion ^& set args=

:: 宏调用示例
%@{macroNparIOTemplate}% inPar1 inPar2 ... inParX ... outPar1 outPar2 ... outParY

内容的提问来源于stack exchange,提问作者Andrea Rossetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:06:04