目前,我正在尝试编写一个批处理文件,使用 vlc 的命令行命令将文件夹中的所有 .wav 文件递归转换为 .ogg 文件,并将它们放入另一个磁盘上的文件夹中。到目前为止,该脚本按预期运行,除了一个小问题,vlc://quit 不起作用,就是这样。
@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%f in ('dir /b /s "C:\Users\*\Music\Ultimate Game Music Collection\*.wav"') DO (
set file1=%%~nf.ogg
echo "file :" !file1!
set fic1=%%f
echo "file :" !fic1!
set destination=F:\myMusic\ogg\!file1!
echo "Destination :" "!destination!"
CALL "C:\Program Files\VideoLAN\VLC\vlc.exe" --ignore-config -I dummy --dummy-quiet -vv "!fic1!" --sout=#transcode{vcodec=none,acodec=vorb,ab=128,channels=2,samplerate=44100,scodec=none}:std{access=file{no-overwrite},mux=ogg,dst="!destination!"}" vlc://quit
)
echo .
echo conversion finished
pause
正在发生的情况是这样的;
我运行批处理文件,它仅发布设置为“echo”的内容(即 -vv 没有显示任何内容),.wav 被转换为 .ogg 并放入新的目的地,vlc 停止,不再转换任何文件。
此时,如果我进入任务管理器并结束 vlc.exe 的进程,它将转到下一个文件,但有超过 5000 个文件需要转换......我将此作为开始并忘记。
我到处搜索,试图找到答案,但无济于事。我试过 --ignore-config,但没有用。我甚至尝试在调用后添加一个单独的 taskkill 命令,但也没有用(即使使用 /t 和 /f)。如果您能提供任何帮助或见解,说明为什么 vlc://quit 不起作用,或者如何修复它,我将不胜感激。
答案1
vlc://quit
在批处理环境中不可靠,并且可能在该环境中导致奇怪的行为。
请改用以下选项:
vlc --play-and-exit