控制Windows批处理文件中的psftp

时间:2009-03-29 06:24:14

标签: windows batch-file

如何编写批处理文件来控制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的解决方案,但是遇到了同样的问题。此外,我更喜欢只有一个文件,但是必须调用第二个文件也没关系。

6 个答案:

答案 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几十年了。

相关问题