【发布时间】:2014-05-08 13:42:36
【问题描述】:
我正在编写一个批处理脚本,该脚本获取转换后的视频文件并将它们通过电子邮件发送给用户。但是,在转换完成并且脚本开始将它们上传到服务器后,批处理脚本将再次启动。此问题导致文件被多次转换和上传,它还会向同一用户发送重复的电子邮件。什么可能导致此脚本重新启动?
注意:当我说“重新开始”或“重新启动”时,我的意思是脚本的一个新实例在另一个完成之前启动。
编辑:此脚本已根据以下建议的格式问题进行了更新,但问题仍然存在。
C:\ffmpeg\bin\ffmpeg.exe -i C:\projects\weatherRecorder\avi\%1.mpg -qscale 0 -y C:\projects\weatherRecorder\avi\%1.mp4
C:\ffmpeg\bin\ffmpeg.exe -i C:\projects\weatherRecorder\avi\%1.mpg -q:v 6 -y C:\projects\weatherRecorder\avi\%1.ogv
C:\ffmpeg\bin\ffmpeg.exe -i C:\projects\weatherRecorder\avi\%1.mpg -q:v 9 -y C:\projects\weatherRecorder\avi\%1.webm
(
echo option batch abort
echo option confirm off
echo open ftp://example.org:example@example/
echo put C:\projects\weatherRecorder\avi\%1.mp4 /domains/example.org/html/wfsb/video/
echo put C:\projects\weatherRecorder\avi\%1.ogv /domains/example.org/html/wfsb/video/
echo put C:\projects\weatherRecorder\avi\%1.webm /domains/example.org/html/wfsb/video/
echo put C:\projects\weatherRecorder\avi\%1.txt /domains/example.org/html/wfsb/video/
echo exit
) > ftpScript%1.txt
C:\winscp.com /script=ftpScript%1.txt
del C:\projects\weatherRecorder\avi\%1.mpg
del C:\projects\weatherRecorder\avi\%1.mp4
del C:\projects\weatherRecorder\avi\%1.ogv
del C:\projects\weatherRecorder\avi\%1.webm
"C:\xampp\php\php.exe" -f send.php %1
脚本在这一行开始一个新的实例:
C:\winscp.com /script=ftpScript%1.txt
我看过类似的问题,看起来很多都与批处理脚本文件名与脚本中的命令相同。例如“FTP.bat”,当文件中有 FTP 命令时。我不认为这是问题,因为文件名是“ftp_script.bat”。
如果我可以提供任何其他信息来帮助澄清这个问题,请告诉我。
【问题讨论】:
-
您将录制编号作为 %1 传递,那么您是否尝试一次 FTP 多个流?如果是这样,您的
del ftpScript*.txt可能正在删除另一个传输的控制文件,这可能会扰乱 WINSCP,也许? -
%1 是录制的时间和日期。 '%1.mpg' 会变成类似:'14-04-17-15-47.mpg'。在创建新的控制文件之前,所有以前的控制文件都会被删除。我不明白为什么 WINCSP 会感到困惑。你能更详细地向我解释一下吗?谢谢!
-
你用 WINSCP.COM 创建
ftp_result.txt然后覆盖它两次...为什么? -
这只是一个想法...您的 WINSCP 可能正忙于使用名为
ftpScript14-04-17-15-47的控制文件对 14-04-17-15-47.mpg 进行 FTP 传输,然后您启动另一个 FTP 并删除第一个 WINSCP 仍在使用的 ftpScript*。 -
谢谢马克,这可能是导致这个问题的原因!我没有意识到 WINCSP 命令被包含在控制文件中。 WINCSP 如何两次创建 ftp_result.txt?也许我应该删除 WINCSP 行上的 "> ftp_result.txt"。
标签: php windows batch-file ftp cmd