Batch file 批处理文件未运行,仅运行单个命令
我有一个以下代码的批处理文件Batch file 批处理文件未运行,仅运行单个命令,batch-file,cmd,ffmpeg,command,command-prompt,Batch File,Cmd,Ffmpeg,Command,Command Prompt,我有一个以下代码的批处理文件 cd C:\xampp\htdocs\Projects\videos\images_compare_english && ffmpeg -framerate .25 -i img-%02d.jpg -i music.mp3 -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest compare_english\output.mp4 上面的代码有两个命令,由&&分隔,这意味着第二个命令将仅在执
cd C:\xampp\htdocs\Projects\videos\images_compare_english && ffmpeg -framerate .25 -i img-%02d.jpg -i music.mp3 -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest compare_english\output.mp4
上面的代码有两个命令,由&&
分隔,这意味着第二个命令将仅在执行第一个命令后运行。但它没有运行。我基本上是把一些图像和音乐结合起来。但它不起作用。但是,一次手动输入一个命令是有效的。谁能帮我一下,命令提示符有什么问题吗?
- 更新-我已逐个尝试了一些可能的命令选项,以使用文件名重命名您的img-
2d.jpg,而不删除/重命名这些字符:%0
,未成功。我填写您需要从fine name中删除%0
。。。%
尝试重命名您的img-
%0
2d.jpg文件删除/更改此%0
%0
==是保存bat文件本身名称的变量:
%0
==your_bat_file.bat
img-%02
d.jpg=img-您的_bat_文件.bat
2d.jpg
@echo off&&setlocal EnableDelayedExpansion
设置“\u to\u push=C:\xampp\htdocs\Projects\videos\images\u compare\u english”&rem/path files mp3/jpg
设置“\u ffmpegF=C:\ffmpeg\bin\ffmpeg.exe”&rem/path二进制ffmpeg
设置“\u to\u save=!\u to\u push!\compare\u english”&rem/path二进制ffmpeg
rem./下一行&rem/ffmpeg.exe命令
“!\u ffmpegF!”-帧速率.25-i”!\u-to-u-push!\img-02d.jpg“-i”!\u-to-u-push!\music.mp3”^
-c:v libx264-预设veryslow-crf 0-c:a copy-最短“!\u to\u save!\output.mp4”
结束本地和退出/b
使用
ffmepg
测试的文件名布局,它们来自ffmpeg
和cmd.exe
:
rem/使用%%02d==img-%02d.jpg
[image2@0000017eeb2eb980]找不到路径为“C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-%02d.jpg”且索引范围为0-4的文件
C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-%02d.jpg:没有这样的文件或目录
rem/使用?02d==img-?02d.jpg
[image2@00000 27E9792B980]找不到路径为“C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-?02d.jpg”且索引范围在0-4之间的文件
C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-?02d.jpg:没有这样的文件或目录
rem/using%%%02d==img-%Q58949386.cmd2d
C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-%Q58949386.cmd2d.jpg:没有这样的文件或目录
rem/使用*02d==img-*02d.jpg
[image2@00000 24dc0edb980]找不到路径为“C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-*02d.jpg”且索引范围为0-4的文件
C:\xampp\htdocs\Projects\videos\images\u compare\u english\img-*02d.jpg:没有这样的文件或目录
获取有关上一个命令的
%ERRORLEVEL%
的更多信息,只需使用cd C:\xampp\htdocs\Projects\videos\images\u compare\u english&echo%ERRORLEVEL%
检查是否有任何错误。如果%ERRORLEVEL%
为0,则它应该与&
一起工作,但如果它不是0,则该值有问题,&
将不起作用
&&
表示如果上一个命令的%ERRORLEVEL%
为0,则下一个命令将运行。只需使用&
在同一行中运行两个命令。另外,如果在批处理文件中,在一行上执行两个命令的目的是什么?正如格哈德·巴纳德所说,只需添加一行新词
&&
并不意味着仅在上一个命令完成时运行。您处于批处理文件中。为什么要链接这些命令?只需做新行。它不是,所以你需要将%%
字符加倍…%%02d.jpg
而不是%02d.jpg
.ffmpeg找不到:img-%02
d.jpg,img-%02
d.jpg,img-?02
d.jpg,img-*02
d.jpg