Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件未运行,仅运行单个命令_Batch File_Cmd_Ffmpeg_Command_Command Prompt - Fatal编程技术网

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-
    %0
    2d.jpg,而不删除/重命名这些字符:
    %0
    ,未成功。我填写您需要从fine name中删除
    %
    。。。



尝试重命名您的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