【问题标题】:Batch file not running, only individual command runs批处理文件未运行,仅运行单个命令
【发布时间】:2019-11-20 08:02:42
【问题描述】:

我有以下代码的批处理文件

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

上面的代码有两个命令,由&&分隔,意味着第二个命令只有在第一个命令执行后才会运行。但它没有运行。我基本上是将一些图像与音乐结合起来。但它不起作用。但是,一次手动输入一个命令是可行的。谁能帮帮我,命令提示符有什么问题?

【问题讨论】:

标签: batch-file cmd ffmpeg command command-prompt


【解决方案1】:


  • 更新 - 我已经一一尝试了一些可能的命令选项来使用文件名重命名您的 img-%02d.jpg 而不删除/重命名这些字符:%0,没有成功。我填写你需要从名字中删除%...



尝试重命名您的 img-%02d.jpg 文件删除/更改此 %0

%0 == 是保存bat文件本身名字的变量:

%0 == your_bat_file.bat

img-%02d.jpg == img-your_bat_file.bat2d.jpg


@echo off && setlocal EnableDelayedExpansion

set "_to_push=C:\xampp\htdocs\Projects\videos\images_compare_english"              & rem/ path files mp3/jpg
set "_ffmpegF=C:\ffmpeg\bin\ffmpeg.exe"                                            & rem/ path binary ffmpeg
set "_to_save=!_to_push!\compare_english"                                          & rem/ path binary ffmpeg
rem./                                                                    next line & rem/ ffmpeg.exe command
"!_ffmpegF!" -framerate .25 -i "!_to_push!\img-02d.jpg" -i "!_to_push!\music.mp3"  ^
    -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest "!_to_save!\output.mp4"

endlocal && exit /b 

使用 ffmepg 测试的文件名布局来自 ffmpegcmd.exe

rem/ using %%02d  == img-%02d.jpg
[image2 @ 0000017eeb2eb980] Could find no file with path 'C:\xampp\htdocs\Projects\videos\images_compare_english\img-%02d.jpg' and index in the range 0-4
C:\xampp\htdocs\Projects\videos\images_compare_english\img-%02d.jpg: No such file or directory

 rem/ using ?02d == img-?02d.jpg
[image2 @ 0000027e9792b980] Could find no file with path 'C:\xampp\htdocs\Projects\videos\images_compare_english\img-?02d.jpg' and index in the range 0-4
C:\xampp\htdocs\Projects\videos\images_compare_english\img-?02d.jpg: No such file or directory

rem/ using %%%02d == img-%Q58949386.cmd2d
C:\xampp\htdocs\Projects\videos\images_compare_english\img-%Q58949386.cmd2d.jpg: No such file or directory

rem/ using *02d == img-*02d.jpg
[image2 @ 0000024dc0edb980] Could find no file with path 'C:\xampp\htdocs\Projects\videos\images_compare_english\img-*02d.jpg' and index in the range 0-4
C:\xampp\htdocs\Projects\videos\images_compare_english\img-*02d.jpg: No such file or directory



获取有关%0, %~0, %~d0, %~dp0, %~f0, %~n0, %~x0... 的更多信息

【讨论】:

    【解决方案2】:

    检查上一条命令的%ERRORLEVEL% 是否有问题,使用cd C:\xampp\htdocs\Projects\videos\images_compare_english & echo %errorlevel% 检查是否有问题。如果%ERRORLEVEL% 为0,那么它应该与&& 一起使用,但如果它不为0,则说明有问题,&& 将不起作用。

    &&表示如果上一条命令的%ERRORLEVEL%为0则运行下一条命令。只需使用&在同一行运行两条命令即可。另外,如果您在批处理文件中,在一行上执行两个命令的目的是什么?只需按照 Gerhard Barnard 所说的添加新行。

    https://pastebin.com/nkkCUMKn

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2018-09-08
      • 2010-11-29
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多