是否存在允许我批量隐藏文件并执行以下操作的程序:
a)在我的驱动器上搜索MP3
b)从128 kbs / sec转码到64 kbs / sec
c)从立体声切换到单声道
d)保存并覆盖以前的文件
或者他们是否可以编写脚本来在Windows桌面上执行此任务?
答案 0 :(得分:0)
如果您使用的是un * x,批处理的首选工具是find
:
find /path/to/foo -name "*.mp3"
将为您提供与/ path / to / foo及其所有子目录中的“* .mp3”匹配的所有文件。
因为find
是野兽,你可能想查看它的联机帮助页。
您可以将脚本传递给每个匹配调用的find
。例如以下将对所有文件执行“ls -l”(不包括名为“mysounds.mp3 /”的目录;这是-type f
的用途):
find /path/to/foo -type f -name "*.mp3" -exec ls -l \{\} \;
请注意,花括号和分号是用反引号转义的,以防止shell解释这些特殊字符。
如果您有一个脚本(名为convertmp3.sh
且位于当前工作目录中)并执行就地转换(覆盖旧文件),您可以这样做:
find /path/to/foo -type f -name "*.mp3" -exec ./convertmp3.sh \{\} \;
这样的脚本可能看起来像:
#!/bin/sh
INFILE="$1"
TMPFILE="${INFILE}.mp3"
ffmpeg -i "${INFILE}" -ac 1 -b 64k "${TMPFILE}" && mv "${TMPFILE}" "${INFILE}"
请注意我在这里使用临时文件,因为否则ffmpeg
会在完全读取之后开始覆盖源文件,从而因错误而停止。
也不要忘记文件名周围的引号,以防止带空格的文件名等。
另请注意,此脚本不会检查输入文件是否已经采用所需格式,因此可能会对其进行重新编码。