Windows 批处理和 VLC 问题

Windows 批处理和 VLC 问题

目前,我正在尝试编写一个批处理文件,使用 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

相关内容