如何通过 bsub 在 Windows 命令行上运行涉及多个单引号和双引号的命令

问题描述 投票:0回答:1

我想运行以下命令。此命令将在 Linux 计算机(终端)上运行,并将通过 Windows 计算机 (mtbsvr2) 上的 bsub 提交作业:

"bsub -J shutdownMachines -o //noi/out.txt -e //noi/err.txt -m mtbsvr2 -q win_normal "for /f %i in ( 'bhosts -w pov_test ^| cut -d " " -f1 ^| tail -n +2' ) do shutdown -m \\%i /r /t 02"

//noi/err.txt的内容:

命令语法不正确。

我尝试了单引号和双引号的各种组合,但运行命令时没有成功。接下来我可以尝试什么?

linux windows batch-file
1个回答
1
投票

您似乎在 Windows 上运行类似 UNIX 的命令

cut
tail

如果您还有

xargs
,您可以将 Windows
for
循环替换为将命令输出通过管道传输到
xargs
,如

bhosts -w pov_test ^| cut -d " " -f1 ^| tail -n +2 ^| xargs -I {} shutdown -m \\{} /r /t 02

我不确定是否有必要像 Windows 那样引用管道字符。

如果字体可能不明确:

xargs
的占位符选项是大写
i
,而不是小写
L
。请参阅https://man7.org/linux/man-pages/man1/xargs.1.html

© www.soinside.com 2019 - 2024. All rights reserved.