Ответ 1
Я закончил создание нового командного файла из основного, который я тогда сказал psftp:
echo cd downloads/boxee > psftp.bat
echo put "%1.avi" >> psftp.bat
echo quit >> psftp.bat
psftp [email protected] -pw aaa -b psftp.bat
Как написать командный файл для управления psftp, но с динамическим именем файла? В целом я пытаюсь преобразовать видеофайл, а затем загрузить его на свой Apple TV. Вот что у меня есть, он вообще работает, но команды не управляют psftp, psftp просто ждет ввода пользователя:
echo Convert and Upload to Apple TV file Called %1.mkv
ffmpeg -i %1.mkv -vcodec mpeg4 -acodec ac3 -ab 384k -sameq -s hd720 -t 60 %1.avi
psftp [email protected] -pw aaa
cd downloads/boxee
put %1.avi
quit
Я знаю с флагом -b psftp может вызывать его собственный пакетный файл, но я не знаю, как получить аргумент% 1. Я видел решения, в которых текстовый файл перенаправляется на psftp, но это страдает от одной и той же проблемы. Кроме того, я бы предпочел иметь только один файл, но для вызова второго файла было бы хорошо.
Я закончил создание нового командного файла из основного, который я тогда сказал psftp:
echo cd downloads/boxee > psftp.bat
echo put "%1.avi" >> psftp.bat
echo quit >> psftp.bat
psftp [email protected] -pw aaa -b psftp.bat
Укажите файл, содержащий командные команды
При нормальной работе PSFTP представляет собой интерактивную программу, которая отображает командную строку и принимает команды с клавиатуры.
Если вам нужны автоматические задачи с помощью PSFTP, вы, вероятно, предпочтете заранее указать набор команд и выполнить их автоматически. Опция -b позволяет это сделать. Вы используете его с именем файла, содержащим командные команды. Например, вы можете создать файл с именем myscript.scr, содержащий такие строки:
cd /home/ftp/users/jeff
del jam-old.tar.gz
ren jam.tar.gz jam-old.tar.gz
put jam.tar.gz
chmod a+r jam.tar.gz
quit
а затем вы можете запустить script, набрав
psftp [email protected] -b myscript.scr
Кредит http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html#6.1.3
Все в одном файле:
@echo off
echo Convert and Upload to Apple TV file Called %1.mkv
ffmpeg -i %1.mkv -vcodec mpeg4 -acodec ac3 -ab 384k -sameq -s hd720 -t 60 %1.avi
(
echo cd downloads/boxee
echo put %1.avi
echo quit
) | psftp [email protected] -pw aaa -bc
Если нам нужен точный номер порта:
psftp [email protected] -P 222 -pw aaa -bc
Почему бы не использовать встроенную команду FTP, которая поставляется с окнами?
вам нужно будет написать script, который выгрузит файл:
открыть 192.168.1.50
пользователь
передний ряд ааа
положить файл .avi
quit
затем вызовите ftp -s: MyScript
Вам нужно будет сгенерировать script для каждого файла с помощью эха и перенаправления → .
Если все, что вы делаете с ftp, загружает один файл, вы можете использовать pscp.
echo Convert and Upload to Apple TV file Called %1.mkv
ffmpeg -i %1.mkv -vcodec mpeg4 -acodec ac3 -ab 384k -sameq -s hd720 -t 60 %1.avi
pscp -pw aaa -sftp %1.avi [email protected]:/downloads/boxee
Я пытался запустить простой пакетный файл / script, чтобы конечный пользователь загрузил файл, который только что редактировал на безопасный FTP-сайт.
Использование этого Script:
cd /outgoing
put Examplefile.txt
# chmod a+r Examplefile.txt
# ren Examplefile.txt Exam.ted
# rm Examplefile.txt
quit
и запустить команду PuTTY sftp из стандартной командной строки Windows:
psftp [email protected] -pw password -b testscript.scr
Я смог быстро и (что более важно!!) легко загрузить файл из компании, в которой я работаю, для компании, с которой нам нужно было вести бизнес. Вы также можете увидеть, что я готов переименовать файл, если необходимо (ren
), или при необходимости удалить файл (rm
). Символ хеша (#
) устанавливает строки как строки замечаний.
Это позволило мне создать полный пакетный файл в Windows, который конечный пользователь мог просто щелкнуть, чтобы загрузить файлы по мере их создания. Это было намного проще, чем использование некоторых других "вкусов" sftp, которые я нашел в "Сети", и я использовал и доверял PuTTY в течение десятилетий.