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

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

Я положил это:

CD /D C:\Users\Vincent\Desktop
psftp user@99.99.99.99 -pw password -P port
put file.csv /remote/folder/file.csv

Но когда я вызываю мой BAT-файл, он зависает:

psftp > _

Как я могу использовать его в качестве режима автоматизации?

1 ответ1

0

Прежде всего, давайте диагностируем, почему это не работает.

  1. Пакетный файл запускается. Вероятно, в C:\users\vincent\
  2. Рабочий каталог изменяется первой командой. эта команда заканчивается, и обработка переходит к следующей команде.
  3. psftp user@99.99.99.99 -pw password -P port начать. Он работает и ждет ввода пользователя.
  4. Следующая команда не будет достигнута, пока не закончится предыдущая. Если вы быстро читаете, то можете набрать quit и увидеть сообщение об ошибке, которое указывает, что put is not a recognised internal or external command до закрытия окон.

Итак, теперь мы обнаружили, что мы вводим третью команду, а не вводим для psftp. Теперь вопрос в том, как вы можете отдавать приказы запущенной программе psftp.

Глава 6, раздел 6.1.5 psftp, означает опцию -b . Цитируя это:

В обычном режиме PSFTP - это интерактивная программа, которая отображает командную строку и принимает команды с клавиатуры. Если вам нужно выполнять автоматизированные задачи с помощью PSFTP, вы, вероятно, предпочтете заранее указать набор команд и выполнить их автоматически. Опция -b позволяет вам сделать это. Вы используете его с именем файла, содержащим пакетные команды. Например, вы можете создать файл с именем myscript.scr, содержащий такие строки:

Затем он перечисляет пример. В вашем случае файл, вероятно, должен содержать это:

put file.csv /remote/folder/file.csv
quit

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .