Как запустить сценарий оболочки [.sh] из процесса WinSCP в C# .NET

Я успешно выполнил следующие шаги:

  1. Я создал WinSCP [Процесс] в С# .NET
  2. Создан сеанс пользователя на LINUX-сервере [с использованием протокола SFTP]
  3. Скачал файлы с помощью GetFiles(........);

Что я хочу добавить в свое приложение, так это то, что:

  • Дайте этому процессу команду запустить сценарий оболочки [уже загруженный на сервер]
  • Я попробовал это session.ExecuteCommand("sh /fol1/fol1_1/abc.sh");
    , но не дал никаких результатов/влияний

person Asif Mehmood    schedule 30.04.2015    source источник
comment
Хотя меня все еще смущает ваша ссылка на Process и winscp.StandardInput. Это не подходит для сборки WinSCP .NET. Это действительно поможет, если вы опубликуете свой код.   -  person Martin Prikryl    schedule 30.04.2015
comment
Спасибо @MartinPrikryl. Обновлен последний пункт Вопроса. Во время работы нет ошибок, но файлы не создаются в каталоге с помощью abc.sh . Хотя abc.sh работает, когда я вручную запускаю его из замазки   -  person Asif Mehmood    schedule 30.04.2015
comment
При запуске в PuTTY вы выполняете его, используя тот же синтаксис (sh /fol1/fol1_1/abc.sh) из корневой папки?   -  person Martin Prikryl    schedule 30.04.2015
comment
я иду в каталог, используя сначала компакт-диск, а затем просто: sh abc.sh   -  person Asif Mehmood    schedule 30.04.2015
comment
Так что попробуйте то же самое с WinSCP: session.ExecuteCommand("cd /fol1/fol1_1; sh abc.sh");   -  person Martin Prikryl    schedule 30.04.2015
comment
Я попробовал это, спасибо, это работает, но прежде мне приходилось делать: cd ../;   -  person Asif Mehmood    schedule 30.04.2015


Ответы (1)


Чтобы выполнить команду оболочки на сервере с помощью сборки WinSCP .NET, используйте Session.ExecuteCommand:

session.ExecuteCommand("sh abc.sh");

Это будет работать только с протоколами SCP и SFTP (с ограничениями).
См. https://winscp.net/eng/docs/library_session_executecommand#remarks

person Martin Prikryl    schedule 30.04.2015