我想将命令作为命令行参数从一个批处理文件传递到另一个。
例如:
第一个.bat:
call test.bat "echo hello world" "echo welcome "
Run Code Online (Sandbox Code Playgroud)
测试.bat:
set initialcommand=%1
set maincommand=%2
%maincommand%
%initialcommand%
Run Code Online (Sandbox Code Playgroud)
这是您需要的:
first.cmd:
@echo off
set maincommand=echo hello world!
call test.cmd %maincommand%
Run Code Online (Sandbox Code Playgroud)
test.cmd:
@echo off
%*
Run Code Online (Sandbox Code Playgroud)
在这种情况下first.cmd
传递实际命令(您的示例仅传递常量字符串"maincommand"
而不是其值)。
此外,test.cmd
执行由每个参数组成的命令,而不仅仅是第一个。
当你创建这两个文件并执行时first.cmd
,你会得到:
hello world!
Run Code Online (Sandbox Code Playgroud)
正如预期的那样。