我必须运行一个带有2个参数的.exe文件 -
i.lower() in x.lower()
我在两台机器上都有openSSH设置并运行。现在我尝试使用文件运行
File.exe Arg1 Arg2
然而,即使没有收到任何错误,也没有任何反应。一切正常。我尝试运行ls,pwd等,它们工作正常。此外,我也尝试运行.bat文件,它也可以正常工作。 我错过了什么?
答案 0 :(得分:1)
可能(但它取决于command interpreter,例如你的Unix shell如果你的本地机器是Unix系统,或cmd.exe
如果你的本地机器运行Windows)你的参数executable 1}},即字符串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"
的{{3}}(文件可以有空格,但这很难看,你应该避免这样做)
也许你应该做
./File.exe Arg1 Arg2
您应该测试os.system
实际上,如果您使用os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")
进行编码,我建议您使用一些程序标记来更改working directory(make
或{{1}的./File.exe
标记在其代码中可能是鼓舞人心的。
请记住,每个process(包括您的shell或命令解释程序)都有自己的工作目录。详细信息是特定于操作系统的。