运行 Windows 机器上的 .exe 文件无法通过 ssh 运行

Running a .exe file on a Windows machine over ssh not working

我必须 运行 一个带有 2 个参数的 .exe 文件-

File.exe Arg1 Arg2

我在两台机器上都安装了 openSSH 和 运行ning。现在我尝试 运行 文件使用 os.system("ssh remote@ip cd C:/path/to/File;\"./File.exe Arg1 Arg2\"")

但是没有任何反应,即使没有收到错误。一切正常。我尝试了 运行ning ls、pwd 等,它们工作正常。此外,我还尝试了 运行ning 一个 .bat 文件,它也可以正常工作。 我错过了什么?

可能(但这取决于 command interpreter, e.g. your Unix shell if your local machine is a Unix system, or cmd.exe 如果你的本地机器 运行s Windows)你对 os.system 的参数,即字符串 ssh remote@ip cd C:/path/to/File;"./File.exe Arg1 Arg2" 被解析为复合命令,即由分号分隔的一系列 两个 子命令:

ssh remote@ip cd C:/path/to/File

这只是 运行 一个(无用的)cdip 主机上作为用户 remote 而没有别的

然后

"./File.exe Arg1 Arg2"

尝试(但失败了)运行(在您的本地系统上)一个名为 ./File.exe Arg1 Arg2executable(文件可以有空格,但这很难看,您应该避免这样做)

也许你应该这样做

os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")

你应该测试os.system

的结果代码

实际上,如果您正在编写 ./File.exe,我会建议在其代码中使用一些程序标志来更改 working directory (the -C flag of maketar 可能会鼓舞人心)。

请记住,每个 process(包括您的 shell 或您的命令解释器)都有自己的 工作目录。详细信息特定于操作系统。