是否可以在 Windows 命令行中使用变量来表示程序的多个参数?

Eug*_*mov 5 windows command-line

在我的批处理文件中,我有许多具有相同参数的相同程序的调用:

program.exe file1.txt -parameter1 -parameter2 -parameter3 -parameter4 >> output.log
program.exe file2.txt -parameter1 -parameter2 -parameter3 -parameter4 >> output.log
...
Run Code Online (Sandbox Code Playgroud)

我可以声明一个包含字符串“-parameter1 -parameter2 -parameter3 -parameter4 >> output.log”的变量并像这样使用它:

Set variable=-parameter1 -parameter2 -parameter3 -parameter4 >> output.log 
program.exe file2.txt %variable%
Run Code Online (Sandbox Code Playgroud)

我试图这样做,但它不起作用。如果可能,正确的语法是什么?

Ton*_*nny 3

在 SET 命令中,您必须使用 ^ 转义每个 > 符号。
这可以防止 SET 命令将 >> 解释为输出的重定向。

所以:

Set variable=-parameter1 -parameter2 -parameter3 -parameter4 ^>^> output.log
program.exe file2.txt %variable%
Run Code Online (Sandbox Code Playgroud)

如果您要调用子 shell(使用 CMD /C),那么 Lemur 的答案是正确的版本,但对于直接调用则不需要。