更新批处理文件中的命令行参数

Vee*_*ner 6 windows cmd batch-file

是否可以更新或替换批处理文件中的命令行参数(如 %1)?

示例代码:

rem test.cmd
@echo off
echo Before %1
IF "%1" == "123" (
    set %%1 = "12345678"
)
echo After %1
Run Code Online (Sandbox Code Playgroud)

预期结果:

C:/>Test 123
Before 123
After 12345678
Run Code Online (Sandbox Code Playgroud)

实际结果:

C:/>Test 123
Before 123
After 123
Run Code Online (Sandbox Code Playgroud)

MC *_* ND 5

不,你正在尝试的事情是不可能的。

可以模拟将原始批处理参数传递给子程序,或使用修改后的参数递归调用相同的cmd,这再次获取调用中提供的参数%1,%2,...。但这不是你问的。

rem test.cmd
@echo off
echo Before %1

if "%~1"=="123" (
    call :test %1234
) else (
    call :test %1
)

goto :EOF

:test

echo After %1
Run Code Online (Sandbox Code Playgroud)