我在Windows 8.1中使用git bash而且我已经安装了lame。我的git在我的Laravel目录中。对于1次转换,我使用:
/c/Lame/lame --mp3input -V2 -b 64 public/songs/album/album_1000/song_Emmene-moi_1379645693.mp3 public/songs/album/album_1000/64kb/song_Emmene-moi_1379645693.mp3
哪个效果很好。但是,当我想立即转换所有内容时,我会尝试:
for file in public/songs/album/album_1000/*.mp3;
do /c/Lame/lame --mp3input -b 64 "$file" 64kb/"${file%.*}".mp3; done
我收到错误:
无法初始化'64kb / public / songs / album / album_1000 / song_Bagay 9(Remix)_1379645802.mp3' 无法初始化'64kb / public / songs / album / album_1000 / song_Bootleg_1379645790.mp3' 无法初始化'64kb / public / songs / album / album_1000 / song_Emmene-moi_1379645693.mp3' ...
我需要将它们添加到名为64kb的子目录中,例如public / songs / album / album_1000 / 64kb / song_Emmene-moi_1379645693.mp3
这是稍后在PHP代码中使用,我将为album,album_1000和mp3歌曲名称提供变量,因此在album_1000 / album_1000 / 64kb /上的任何字符串替换都可以。
答案 0 :(得分:1)
经过一些测试后,我可以使用内部字符串替换模式
{$Var//string_to_replace/new_string} :
$ for file in public/songs/album/album_1000/*.mp3;
do /c/Lame/lame --mp3input -b 64 "$file" "${file//album_1000/album_1000/64kb}"; done
这对我有用。
答案 1 :(得分:1)
您必须具有以/开头的绝对路径,否则它将不起作用。无论如何,这解决了它在我的Mac上运行的问题。这不是文件夹权限问题,因为其他一些在线相关文章都提到了。