如何在 cmd 命令中包含变量?

How do I include a variable in cmd command?

例如,我希望任何主机上的进程 "myexe.exe" 到 运行。所以我希望在每台计算机上评估主机名并将其插入到命令中。理想情况下,我希望这一切都在一行中完成。我尝试了以下代码。

mpiexec -n 8 -hosts 1 %hostname% myexe.exe myinputfile.txt

但是我遇到了这个错误

... unable to get host address for %hostname% (11001)

所以它似乎没有正确评估主机名。我如何在命令中正确评估主机名?

您可以改用 localhost

但是,在 Windows 上(由 cmd 标记暗示)您可能应该使用:

mpiexec -n 8 -hosts 1 %COMPUTERNAME% myexe.exe myinputfile.txt

hostname 的输出设置变量的魔法是:

FOR /F %A IN ('hostname') DO (SET "V=%~A")

在 .bat 文件脚本中,将百分号字符加倍。

FOR /F %%A IN ('hostname') DO (SET "V=%%~A")