【问题标题】:Windows Batch File to Delete Audio Files, with Length RequirementWindows批处理文件删除音频文件,有长度要求
【发布时间】:2014-06-21 06:29:54
【问题描述】:

感谢您的帮助。我尝试搜索有关如何完成以下操作的示例,但没有找到任何内容。任何帮助将不胜感激,因为我没有创建 BAT 文件的经验!

我有一个第三方程序可以录制音频,并从中生成一个 .mp3 文件。每 24 小时,它会生成一个新文件夹,然后重新开始该过程。问题是,即使是最轻微的声音也会生成一个 .mp3 文件。我留下了数千个不到 1 秒的 .mp3 文件。我想删除所有子目录中长度小于 2 秒的所有音频文件。我该如何解决这个问题,BAT 文件是完成此任务的正确方法吗?手动对许多目录中的文件进行排序是一个非常耗时的过程,因为在我能够通过它们之前会生成 20 到 30 天的文件。

【问题讨论】:

  • 批处理文件不是执行此操作的正确方法。尝试寻找专为管理音频文件而设计的第三方软件。
  • @Monacraft 有一个命令行工具可以让这一切变得简单,Mona。
  • 感谢大家的回复,感谢回复!我有点困惑为什么它被搁置了,因为我确实特别问过如何使用 BAT 文件来完成它。

标签: windows batch-file audio


【解决方案1】:

For a GUI solution: 共享软件完整的 Total Commander 可以列出完整的目录树(控件 B)并按文件大小排序(控件 F6),如果需要也可以只显示 MP3 文件。

此任务只需要您在单个窗格中标记小于 x MBytes 的文件大小,然后您可以一次将它们全部删除。

另一种解决方案是使用batch file 删除2.999 秒或以下的 MP3 文件:
- 将 [210] 更改为 [10] 以删除最多 1.999 秒的文件。

从 SourceForge 下载 Mediainfo command line version
在下面的第 2 行中更改可执行文件的路径
在文件树的主文件夹中启动此批处理文件
如果您在屏幕上看到的 del 命令是正确的,则删除 echo 并再次运行它以删除文件。

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

【讨论】:

  • John,稍微更正一下:[210] 实际上会删除长达 2.999 秒的文件,因此如果您将其更改为 [10],它将删除长达 1.999 秒的文件。该例程实际上只是在 : 00:00:0xDuration 之后查找序列,其中 x 为 2 或 1 或 0,并且它具有以秒为单位的尾随数字。
  • 我必须将 ": 00:00:0[210]" 更改为 "00:00:0[210]" 才能为我工作,但我将它用于 .wav ,我怎么能做到,它会在 3 秒内删除文件。不到 3 秒?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2011-02-01
  • 2012-11-11
相关资源
最近更新 更多