Python 通过ssh在Windows计算机上运行.exe文件无效
我必须运行一个.exe文件,该文件包含两个参数,如下所示-Python 通过ssh在Windows计算机上运行.exe文件无效,python,windows,exe,openssh,Python,Windows,Exe,Openssh,我必须运行一个.exe文件,该文件包含两个参数,如下所示- File.exe Arg1 Arg2 我已经在两台机器上安装并运行了openSSH。现在,我尝试使用 os.system(“sshremote@ipcd C:/path/to/File;\“/File.exe Arg1 Arg2\”) 但是,即使没有收到错误,也不会发生任何事情。一切正常。我试过运行ls、pwd等,它们运行得很好。此外,我还试着运行一个.bat文件,它也可以正常工作。 我遗漏了什么?可能(但这取决于,例如,如果您的本地
File.exe Arg1 Arg2
我已经在两台机器上安装并运行了openSSH。现在,我尝试使用
os.system(“sshremote@ipcd C:/path/to/File;\“/File.exe Arg1 Arg2\”)
但是,即使没有收到错误,也不会发生任何事情。一切正常。我试过运行ls、pwd等,它们运行得很好。此外,我还试着运行一个.bat文件,它也可以正常工作。
我遗漏了什么?可能(但这取决于,例如,如果您的本地计算机是Unix系统,或者如果您的本地计算机运行Windows)您的os.system
参数,即字符串sshremote@ipcd C:/path/to/File;“/File.exe Arg1 Arg2”
被解析为复合命令,即由两个子命令组成的序列,用分号分隔:
ssh remote@ip cd C:/path/to/File
它只是在ip
主机上以用户remote
的身份运行一张(无用的)cd
,其他什么都没有
然后
试图(在本地系统上)运行名为/File.exe Arg1 Arg2
(文件可以有空格,但这很难看,您应该避免)
也许你应该这样做
os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")
您应该测试代码的结果
实际上,如果您正在编写/File.exe
,我建议使用一些程序标志来更改其代码中的(-C
或tar
的-C
标志可能是鼓舞人心的)
请记住,每个(包括shell或命令解释器)都有自己的工作目录。详细信息取决于操作系统。感谢您的回复。使用空格分隔的命令解决了此问题。生成了所需的新文件,并完成了所有操作。我认为什么都不起作用的主要原因是,从远程计算机启动File.exe时,它本身在屏幕上打开了一个新窗口。通过ssh发出的命令没有做到这一点。虽然我实际上不需要它,但有没有办法在远程计算机的屏幕上显示该窗口?这是一个非常不同的问题,它是操作系统特定的(取决于本地和远程计算机上的操作系统)。如果远程系统是Linux,请考虑使用<代码> SSH-X<代码>。否则,请阅读
os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")