Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 xp批处理脚本mp3info和ffmpeg_Batch File - Fatal编程技术网

Batch file xp批处理脚本mp3info和ffmpeg

Batch file xp批处理脚本mp3info和ffmpeg,batch-file,Batch File,我必须检查c:\audio中的许多.mp3音频文件,如果某些参数与我的要求不兼容,则进行修改。我使用mp3info和ffmpeg以及一些.bat脚本来实现这一点 名为“print.bat”的mp3info命令 mp3info-r v-p“%%f%%Q%%b CRC-%%E%%r\n”*.mp3>result1.txt 还有allinone.bat和这个内容 CALL print.bat for %%i in (result1.txt) do ( FINDSTR "48000 Yes Varia

我必须检查c:\audio中的许多.mp3音频文件,如果某些参数与我的要求不兼容,则进行修改。我使用mp3info和ffmpeg以及一些.bat脚本来实现这一点

  • 名为“print.bat”的mp3info命令

    mp3info-r v-p“%%f%%Q%%b CRC-%%E%%r\n”*.mp3>result1.txt
  • 还有allinone.bat和这个内容

    CALL print.bat for %%i in (result1.txt) do ( FINDSTR "48000 Yes Variable" %%i >> result2.txt ) sleep 1 for /f "tokens=1-2 delims= " %%b in (result2.txt) do ( echo %%b >> result3.txt echo removed %%a) sleep 1 @echo off SET destfolder=C:\audio\bad_files FOR /F "delims=" %%a IN (result3.txt) DO COPY "%%a" "%destfolder%\%%~nxa" sleep 1 for %%a in ("C:\audio\bad_files\*.*") do "C:\audio\ffmpeg.exe" -i "%%a" -codec:a libmp3lame -b:a 192k -vsync 2 -ar 44100 -y "C:\audio\ok_files\%%~na.mp3" 调用print.bat 对于%%i in(result1.txt)执行以下操作( FINDSTR“48000是变量”%%i>>result2.txt ) 睡眠1 对于/f“tokens=1-2 delims=“%%b in(result2.txt)do( echo%%b>>result3.txt 已删除回显%%a) 睡眠1 @回音 设置destfolder=C:\audio\bad\u文件 对于/F“delims=”(result3.txt)中的%%a,请复制“%%a”“%destfolder%\%%~nxa” 睡眠1 对于“%C:\audio\bad_files\*.*)中的%%a,请执行“C:\audio\ffmpeg.exe”-i“%%a”-编解码器:a libmp3lame-b:a 192k-vsync 2-ar 44100-y”C:\audio\ok_files\%~na.mp3”
  • 对于大多数人来说,工作流是可预测的,可以帮助我使用一个批处理脚本来完成这项工作。谢谢


    PS:请注意,mp3info命令的响应时间非常长,并且与c:\audio中.mp3文件的数量和大小成正比。对不起,你的问题是什么?我想他的问题是如何在一个批处理文件而不是两个批处理文件中完成。我可以在1中看到许多
    for
    变量。,但是对于循环没有
    ;如果您提供更多的代码,了解正在发生的事情可能会非常有帮助……更简单:
    调用print.bat for%%i in(result1.txt)do(FINDSTR“32000 48000 Yes Variable 320”%%i>result2.txt)for/f“delims=。”%%L in(result2.txt)do复制“%%L.mp3”C:\audio\bad\u files\ for%%a in(“C:\audio\bad\u files\*.*)do”C:\msmtp\audio\ffmpeg.exe“-i”%%a”-编解码器:a libmp3lame-b:a 192k-vsync 2-ar 44100-y“C:\audio\%%~na.mp3“del”C:\audio\bad_files\*.”/F/Q
    谢谢大家!在这篇文章中我太困惑了! CALL print.bat for %%i in (result1.txt) do ( FINDSTR "48000 Yes Variable" %%i >> result2.txt ) sleep 1 for /f "tokens=1-2 delims= " %%b in (result2.txt) do ( echo %%b >> result3.txt echo removed %%a) sleep 1 @echo off SET destfolder=C:\audio\bad_files FOR /F "delims=" %%a IN (result3.txt) DO COPY "%%a" "%destfolder%\%%~nxa" sleep 1 for %%a in ("C:\audio\bad_files\*.*") do "C:\audio\ffmpeg.exe" -i "%%a" -codec:a libmp3lame -b:a 192k -vsync 2 -ar 44100 -y "C:\audio\ok_files\%%~na.mp3"