【发布时间】:2021-01-29 21:40:56
【问题描述】:
我有这个批处理脚本,我可以通过复制粘贴到命令提示符来成功运行它。它以 bash 开始,它启动 WSL,然后包含批处理脚本的其余部分。当我将脚本作为 .cmd 文件运行时,它不会做任何超出此
脚本的其余部分永远不会执行。我该如何解决这个问题?
【问题讨论】:
-
这是 100% 正常的。当脚本包含非后台命令时,它会启动该命令,然后等待该命令退出,然后再执行其他任何操作。因此,如果您的脚本运行
bash,它不会执行任何其他操作(不会运行任何后续命令),直到 bash 退出。 -
...如果您的脚本是用 bash 编写的,我会告诉您传递您希望它作为 heredoc 运行的内容,但如果这是一个 cmd脚本,你需要 cmd.exe 专家来告诉你本地等价于 heredoc 是什么,如果甚至存在这样的东西的话。
-
或者您可以将脚本的 bash 部分放在一个单独的文件中,而不是运行
bash,而是运行bash thatfile。
标签: bash cmd windows-subsystem-for-linux wsl-2