Batch file 为什么';在批处理工作中没有第二次呼叫吗?

Batch file 为什么';在批处理工作中没有第二次呼叫吗?,batch-file,Batch File,我有以下批处理脚本,它是使用 cmd /c 1getthumbs @file > log.txt 1getthumbs的内容包括: set initFile=%1 echo.%initFile% set out=%initFile:.mts=-a.jpg% rem echo.%out% ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\\%1" -frames:v 1 "C:\Users\s\Desktop\social\thum

我有以下批处理脚本,它是使用

cmd /c 1getthumbs @file > log.txt
1getthumbs的内容包括:

set initFile=%1
echo.%initFile%
set out=%initFile:.mts=-a.jpg%
rem echo.%out%

ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\\%1" -frames:v 1 
"C:\Users\s\Desktop\social\thumbs\\%out%"

set out=%initFile:.mts=-b.jpg%
echo.%out%

ffmpeg32 -ss 00:01:00 -i "C:\Users\s\Desktop\social\\%1" -frames:v 1 
"C:\Users\s\Desktop\social\thumbs\%out%"
以下命令执行第一个ffmpeg32,但不执行第二个ffmpeg32 你知道为什么吗

测试时使用log.txt内容进行更新:

C:\Program Files\ffmpeg>set initFile="00178.MTS" 

C:\Program Files\ffmpeg>echo."00178.MTS"
"00178.MTS"

C:\Program Files\ffmpeg>set out="00178-a.jpg" 

C:\Program Files\ffmpeg>rem echo."00178-a.jpg" 

C:\Program Files\ffmpeg>ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\\"00178.MTS"" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\\"00178-a.jpg"" 
下面是我执行批处理文件时的输出,该批处理文件调用1getthumbs.bat

C:\Program Files\ffmpeg>cmd /c 1getthumbs "00178.MTS" > log.txt
ffmpeg version N-52045-g694fa00 Copyright (c) 2000-2013 the FFmpeg developers
  built on Apr 12 2013 16:54:51 with gcc 4.8.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn
b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr
tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo
ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena
ble-zlib
  libavutil      52. 26.100 / 52. 26.100
  libavcodec     55.  2.100 / 55.  2.100
  libavformat    55.  2.100 / 55.  2.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 53.101 /  3. 53.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mpegts, from 'C:\Users\s\Desktop\social\00178.MTS':
  Duration: 00:00:02.51, start: 1.000011, bitrate: 24725 kb/s
  Program 1
    Stream #0:0[0x1011]: Video: h264 (High) (HDPR / 0x52504448), yuv420p, 1920x1
080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
    Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp,
 256 kb/s
    Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Output #0, image2, to 'C:\Users\s\Desktop\social\thumbs\00178-a.jpg':
  Metadata:
    encoder         : Lavf55.2.100
    Stream #0:0: Video: mjpeg, yuvj420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 2
00 kb/s, 90k tbn, 59.94 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
[h264 @ 03598580] Missing reference picture, default is 0
[h264 @ 03598580] decode_slice_header error
[h264 @ 03598580] Missing reference picture, default is 0
[h264 @ 03598580] decode_slice_header error
[h264 @ 03598580] Missing reference picture, default is 0
[h264 @ 03598580] decode_slice_header error
[h264 @ 03598580] Missing reference picture, default is 0
[h264 @ 03598580] decode_slice_header error
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead -inf%
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters i
f used)

试试这个:它纠正了一些引用和斜杠的问题。
如果
ffmpeg32
是批处理文件,则需要使用
调用ffmpeg32

set "initFile=%~1"
echo."%initFile%"
set "out=%initFile:.mts=-a.jpg%"
rem echo."%out%"

ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\%initFile%" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\%out%"

set "out=%initFile:.mts=-b.jpg%"
echo."%out%"

ffmpeg32 -ss 00:01:00 -i "C:\Users\s\Desktop\social\%initFile%" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\%out%"

这是实际的代码吗?以
“c:\users
应位于上述行的末尾。您在
log.txt
文件中看到了什么?我尝试了上面建议的方法,它似乎执行了第二个调用,而不是第一个调用。我仍在尝试不同的选项您是否调用了此批处理文件
ffmpeg32.bat
?这与日志输出不匹配,但请确保调用的名称与可执行文件的名称不同。而ffmpeg32-是一个
.exe
文件吗?添加调用似乎可以修复它!