我正在尝试将bash脚本转换为Windows批处理文件。这是一个非常简单的衬纸,应该将文件的内容作为script.exe
的参数,并将结果发送到output.txt
。
这是有效的bash脚本:
./script.exe $(cat input.txt) > output.txt
我知道这可能是不好的风格,但是可以。问题是,我不知道如何在Windows批处理文件中执行类似$()
的操作。当我使用它时,它将发送字符串"$(cat input.txt)"
作为参数,而不是运行命令。
答案 0 :(得分:1)
此bash构造称为命令替换。这是a great answer from @MichaelBurr.
您可以将cmd.exe脚本与
for /f
命令:for /f "usebackq tokens=*" %%a in (`echo Test`) do my_command %%a
是的,这有点不明显(至少可以这样说),但这就是 在那里。
有关血腥细节,请参见
for /?
。旁注:我认为应该在反引号内使用“
echo
” 由于for /f
是cmd.exe /c echo Test
的内部命令,因此需要使用“echo
”来完成“cmd.exe
”命令。 以更自然的方式Windows批处理脚本总是让我感到惊讶 以某种方式(但通常不是很好的方式)。
另请参见,关于超级用户:Is there something like Command Substitution in WIndows CLI?