【问题标题】:batch file to delete all .wavs over 3 seconds in length批处理文件以删除所有超过 3 秒的 .wav
【发布时间】:2017-03-03 03:52:55
【问题描述】:

我正在创建一个 .bat 来删除目录中长度超过 3 秒的所有 .wav,我找到了this question that can be used to delete all .mp3's / .wav's under 3 seconds using MediaInfo,您将如何更改它以删除大于 3 秒的文件?不到3秒?您必须删除“回声”才能执行

  @echo off
set "exe=MediaInfo.exe"
for /r %%a in (*.wav) do (
"%exe%" -f "%%a" | find "Duration" | findstr /r "00:00:0[210]" >nul && echo del "%%a"
)
pause

使用单个文件输出运行媒体信息:

Duration                                 : 203
Duration                                 : 203ms
Duration                                 : 203ms
Duration                                 : 203ms
Duration                                 : 00:00:00.203
Duration                                 : 00:00:00.203
Duration                                 : 203
Duration                                 : 203ms
Duration                                 : 203ms
Duration                                 : 203ms
Duration                                 : 00:00:00.203
Duration                                 : 00:00:00.203
Press any key to continue . . .

这些是 00:00:0[210] 下的文件,但我想定位 00:00:0[210] 以上的文件

【问题讨论】:

  • > 是一个重定向命令,所以我并不惊讶它不起作用。我的电脑上没有任何 3 秒以下的音频文件,但我想你可以简单地将 /v 添加到 findstr 命令中。
  • FOR /F 命令中捕获媒体信息输出,以便您可以解析出时间元素。
  • 我没有媒体信息或任何音频文件可供测试。您必须向我们展示媒体信息的输出。请使用该信息更新您的问题。
  • 好吧,您更新了您的问题,但没有使用我要求的信息。我需要澄清我的要求吗?
  • 使用单个文件运行媒体信息。

标签: windows batch-file audio


【解决方案1】:

此代码不考虑毫秒,并假定最后持续时间输出将采用这种格式 00:00:00.123

@echo off

for /r %%F in (*.wav) do (
    FOR /F "tokens=2,3,4 delims=:. " %%G IN ('mediainfo.exe -f "%%F" ^| find "Duration"') DO (
        set "ftime=%%G%%H%%I"
    )
    setlocal enabledelayedexpansion
    IF "!ftime!" GTR "000003" DEL "%%F"
    endlocal
)
pause

【讨论】:

  • 感谢您的所有帮助!我做了一些改变,它的工作原理!我只是将 MediaInfo.exe 中的 M 和 I 大写,并将所有 %%F 更改为 %%a,它就起作用了
  • @Jeff 抱歉混淆了 for 变量。文件名在 Windows 中不区分大小写,所以这无关紧要。
  • sweet 我不确定这是否重要,但我这样做只是为了以防万一,很高兴知道未来,但它一定是 %%F 到 %%a (变量)。再次感谢!
  • @Jeff 我总是喜欢以字母 G 开始我的 FOR 变量。在使用 FOR 修饰符时有一些注意事项,如果您使用的字母是修饰符。
  • 我明白了,windows命令提示符/批处理编码对我来说很新,我主要有更多的PHP/Jquery经验,不过这些东西真的很方便,它节省了很多时间,做的事情也很多更轻松。期待继续学习它
猜你喜欢
  • 2017-05-26
  • 2010-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多