WinSCP — Неизвестная команда и». log » не распознается как внутренняя или внешняя команда

#powershell #batch-file #environment-variables #sftp #winscp

Вопрос:

Контекст: Я использую powershell для создания экземпляра пакетного файла для выполнения удаленной команды синхронизации в WinSCP и извлечения свежих данных из удаленного каталога в мой локальный каталог. Смотрите скриншоты ниже для получения информации о командах WinSCP и содержимом пакетного файла. Когда я пытаюсь выполнить, я могу успешно пройти аутентификацию, но вижу 2 ошибки.

Содержимое пакетного файла:

 winscp.com /script=winscp_commands_ar_history.txt
/log=C:/Users/REDACTED/Desktop/AR_History_Report/winscp_log_ar_history.txt
 

Команды WinSCP:

 option batch abort
option confirm off
open sftp://REDACTED:REDACTED@sftp.REDACTED.com
-hostkey="ssh-rsa 2048 cc:ea:2e:03:96:ca:e7:c0:59:74:13:a8:XX:XX:XX:XX"
synchronize remote /export/GroupAccess/REDACTED/Cognos Reporting/CogTest
C:/Users/REDACTED/Desktop/AR_History_Report
exit
 

Вывод Powershell:
введите описание изображения здесь

Ошибки:

Неизвестная команда ‘-ключ хоста=ssh-rsa 2048 cc:ea:2e:03:96:ca:e7:c0:59:74:13:a8:XX:XX:XX:XX’.

«/log» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

Вопрос: Как мне устранить эти 2 ошибки? Я подозреваю, что последнее связано с переменными среды, так как, похоже, powershell не распознал команду журнала WinSCP, поэтому я добавил WinSCP в переменную среды PATH, но я все еще получаю те же ошибки. Может кто-нибудь, пожалуйста, помочь? Спасибо.

Комментарии:

1. Еще один совет. Обычно мы предпочитаем, чтобы вы публиковали текст как текст, а не размещали его скриншоты. Также намного проще редактировать.

Ответ №1:

Как в вашем пакетном файле, так и в сценарии WinSCP есть разрывы строк в середине команд. Более того, в synchronize команде вам нужно заключить путь пробелами в двойные кавычки.

Пакетный файл должен быть:

 winscp.com /script=winscp_commands_ar_history.txt /log=C:/Users/REDACTED/Desktop/AR_History_Report/winscp_log_ar_history.txt
 

И файл сценария должен быть:

 option batch abort
option confirm off
open sftp://REDACTED:REDACTED@sftp.REDACTED.com -hostkey="ssh-rsa 2048 cc:ea:2e:03:96:ca:e7:c0:59:74:13:a8:XX:XX:XX:XX"
synchronize remote "/export/GroupAccess/REDACTED/Cognos Reporting/CogTest" C:/Users/REDACTED/Desktop/AR_History_Report
exit
 

Кроме того, как прокомментировал @mklement0, вам не нужен другой powershell процесс для вызова пакетного файла из PowerShell — просто вызывайте пакетные файлы напрямую: .ar_trigger_history.bat

Комментарии:

1. спасибо, это, кажется, устраняет эти ошибки