如何在批处理循环中重命名文件

时间:2019-01-23 12:20:22

标签: batch-file batch-rename

我当前正在编写用于压缩目录中mp3歌曲的脚本。看起来像这样。

SET BITRATE=128k
SET EXTENSION=mp3
SET MP3_CODEC=libmp3lame

for %%f in (.\*.%EXTENSION%) do (
    ffmpeg -y -i "%%f" -acodec %MP3_CODEC% -ab %BITRATE% -id3v2_version 3 "%%f.%EXTENSION%"
    del "%%f"
    ren "%%f.%EXTENSION%" "%%f"
)

在压缩和删除原始文件上效果很好。但是在重新命名新文件时,我遇到了The syntax of the command is incorrect错误。

隔离,失败的代码是这个

for %%f in (.\*.mp3) do ren "%%f" "%%f.mp3"

我知道重命名的解决方法似乎很糟糕,但是%%f变量将文件夹存储在文件上(即“。\ song.mp3”),因此我无法更改文件名,只能更改其扩展名(必须为对于ffmpeg来说也一样)。

重复错误

已在Windows中安装ffmpeg,将X.mp3文件和此脚本放置在文件夹中并运行该脚本。它将压缩文件到名为“ X.mp3.mp3”的新文件,删除原始的“ X.mp3”文件,并且在将“ X.mp3.mp3”重命名为“ X.mp3”时失败。 >

如果我在控制台中手动运行这些命令,它将起作用。

0 个答案:

没有答案