Возможно (но это зависит от интерпретатора команд , например, Unix shell , если ваш локальный компьютер - система Unix, или cmd.exe
, если вашлокальный компьютер запускает 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
(файлы могут иметь пробелы, но это уродливо, и вам следует избегать этого)
Возможно, вам следует сделать
os.system("ssh remote@ip 'cd C:/path/to/File; ./File.exe Arg1 Arg2'")
и вы должны проверить код результата os.system
На самом деле, если вы кодируете это ./File.exe
, я бы порекомендовал установить какой-нибудь программный флаг дляизменить рабочий каталог (флаг -C
make
или tar
может быть вдохновляющим) в its code.
Помните, что каждый процесс (включая вашу оболочку или интерпретатор команд) имеет свой собственный рабочий каталог.Подробности зависят от операционной системы.