Запустить скрипт через FTP-соединение из PowerShell - PullRequest
0 голосов
/ 23 мая 2018

Я создал скрипт, который выполняет действительно простую задачу, он подключается к удаленному FTP-сайту, извлекает XML-файлы и впоследствии удаляет их.

Единственная проблема заключается в том, что в прошлом мы теряли файлы, потому что онибыли добавлены при выполнении оператора delete.

open ftp.site.com
username
password
cd Out
lcd "E:\FTP\Site"
mget *.XML
mdel *.XML

bye

Чтобы этого не случилось, мы хотим поместить скрипт на FTP-сервер (rename-files.ps1).Скрипт переименует файлы *.xml в *.xml.copy.

Единственное, что я понятия не имею, как запустить скрипт через мое FTP-соединение.

1 Ответ

0 голосов
/ 23 мая 2018

Некоторые, но очень немногие, FTP-серверы поддерживают команду SITE EXEC.Если очень редкий случай, когда ваш FTP-сервер поддерживает его, вы можете использовать:

quote SITE EXEC powershell rename-files.ps1

Хотя, в большинстве случаев, вы ничего не можете выполнить на FTP-сервере, если FTP - единственный способ получить доступсервер.Вам нужно будет использовать другой метод для выполнения сценария, например SSH, PowerShell Remoting и т. Д.


Но у вашей проблемы есть другие решения:

  • переименование файлов с использованием FTP;или
  • удалите только файлы, которые были загружены.

Оба варианта выполнимы, но вам потребуется более качественный FTP-клиент, чем Windows ftp.exe.
См., например, Сценарий WinSCP для загрузки, переименования и перемещения файлов .


Или вы можете сделать это следующим образом:

  • Запустите ftp.exe один раз, чтобы получить список файлов;
  • Обработка списка в PowerShell для создания сценария ftp с командами get и del для определенных файлов (без подстановочных знаков);
  • Повторное выполнение ftp.exe с созданным сценарием.

На самом деле вам не нужно использовать ftp.exe в PowerShell.Сборка .NET имеет собственную реализацию FTP: FtpWebRequest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...