运行 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
这只是 运行 一个(无用的)cd
在 ip
主机上作为用户 remote
而没有别的
然后
"./File.exe Arg1 Arg2"
尝试(但失败了)运行(在您的本地系统上)一个名为 ./File.exe Arg1 Arg2
的 executable(文件可以有空格,但这很难看,您应该避免这样做)
也许你应该这样做
os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")
你应该测试os.system
的结果代码
实际上,如果您正在编写 ./File.exe
,我会建议在其代码中使用一些程序标志来更改 working directory (the -C
flag of make
或 tar
可能会鼓舞人心)。
请记住,每个 process(包括您的 shell 或您的命令解释器)都有自己的 工作目录。详细信息特定于操作系统。
我必须 运行 一个带有 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
这只是 运行 一个(无用的)cd
在 ip
主机上作为用户 remote
而没有别的
然后
"./File.exe Arg1 Arg2"
尝试(但失败了)运行(在您的本地系统上)一个名为 ./File.exe Arg1 Arg2
的 executable(文件可以有空格,但这很难看,您应该避免这样做)
也许你应该这样做
os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")
你应该测试os.system
实际上,如果您正在编写 ./File.exe
,我会建议在其代码中使用一些程序标志来更改 working directory (the -C
flag of make
或 tar
可能会鼓舞人心)。
请记住,每个 process(包括您的 shell 或您的命令解释器)都有自己的 工作目录。详细信息特定于操作系统。