如何编写批处理文件来控制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 frontrow@192.168.1.50 -pw aaa
cd downloads/boxee
put %1.avi
quit
我知道-b标志psftp可以调用它自己的批处理文件,但我不知道如何获取它的%1参数。我已经看到了将文本文件重定向到psftp的解决方案,但是遇到了同样的问题。此外,我更喜欢只有一个文件,但是必须调用第二个文件也没关系。
答案 0 :(得分:15)
我最终创建了一个新的批处理文件,然后我告诉psftp使用它:
echo cd downloads/boxee > psftp.bat
echo put "%1.avi" >> psftp.bat
echo quit >> psftp.bat
psftp frontrow@192.168.1.50 -pw aaa -b psftp.bat
答案 1 :(得分:4)
指定包含批处理命令的文件
在正常操作中,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
然后您可以通过键入
来运行脚本psftp user@hostname -b myscript.scr
归功于http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html#6.1.3
答案 2 :(得分:2)
全部在一个文件中:
@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 frontrow@192.168.1.50 -pw aaa -bc
如果我们需要精确的端口号:
psftp frontrow@192.168.1.50 -P 222 -pw aaa -bc
答案 3 :(得分:1)
为什么不使用Windows附带的内置FTP命令?
您需要编写一个将上传文件的脚本:
打开192.168.1.50
用户
前排 AAA
把file.avi
退出
然后调用 ftp -s:MyScript
您需要使用echo和>>生成每个文件的脚本。重定向器。
答案 4 :(得分:0)
如果您正在使用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 frontrow@192.168.1.50:/downloads/boxee
答案 5 :(得分:0)
我正在努力运行一个简单的批处理文件/脚本,让最终用户将她刚编辑过的文件上传到安全的FTP站点。
使用此脚本:
cd /outgoing
put Examplefile.txt
# chmod a+r Examplefile.txt
# ren Examplefile.txt Exam.ted
# rm Examplefile.txt
quit
从标准Windows命令提示符运行PuTTY的sftp命令:
psftp user@ftp.address.com -pw password -b testscript.scr
我能够快速地(更重要的是!!)轻松地将我正在工作的公司的文件上传到我们需要与之交易的公司。您还可以看到我已准备好在需要时重命名文件(ren
)或在需要时删除文件(rm
)。哈希符号(#
)将行设置为备注行。
这使我能够在Windows中创建一个完整的批处理文件,最终用户只需单击该文件即可在生成文件时上传文件。它比使用我在网上发现的其他一些sftp“风味”简单得多,我已经使用并信任PuTTY几十年了。