Использование PSFTP для отправки файла на удаленный сервер
У меня есть файл летучей мыши, который я вызываю каждую ночь, чтобы передать некоторые файлы.
Я хочу поместить файл со своего компьютера на мой удаленный сервер. Я установил 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 ответ
Прежде всего, давайте диагностируем, почему это не работает.
- Пакетный файл запускается. Вероятно, в C:\users\vincent\
- Рабочий каталог изменяется первой командой. эта команда заканчивается, и обработка переходит к следующей команде.
psftp user@99.99.99.99 -pw password -P port
начать. Он работает и ожидает ввода пользователя.- Следующая команда не будет достигнута, пока не закончится предыдущая. Если вы быстро читаете, то вы можете напечатать
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