我想使用VLC加入.mp4视频。将following command输入Windows命令提示符后,效果很好:
vlc input_1.mp4 input_2.mp4 --sout "#gather:std{access=file,dst=output.mp4}" --sout-keep
我想对此一概而论,这样就不必手动调整输入文件列表了。我希望当前目录中的所有mp4文件都按字母顺序排列。理想情况是这样的:
files = dir *.mp4 -b -o:n
vlc %files% --sout "#gather:std{access=file,dst=output.mp4}" --sout-keep
第一行显然不能那样工作。我使用了该命令,但当文件名包含空格或(gasp!)感叹号时,事情很快变得尴尬。我还尝试了PowerShell(Start-Process
和&
),但是由于经验不足,无法解决...
答案 0 :(得分:2)
如果使用powershell生成该cmd命令,请尝试以下选项
从powershell执行:
cmd /c "vlc $((dir *.mp4).Name -join ' ') --sout ""#gather:std{access=file,dst=output.mp4}"" --sout-keep"
从cmd执行:
powershell -c "echo ""vlc $((dir *.mp4).Name -join ' ') --sout ""#gather:std{access=file,dst=output.mp4}"" --sout-keep""" | cmd
答案 1 :(得分:1)
第二个示例看起来像是无效批处理和无效Powershell代码的混合体。
在批处理文件中可以这样做:
(只要文件字符串的长度不超过最大cmd行长)
@Echo off & Setlocal EnableDelayedExpansion
set "files="
for /f "delims=" %%A in ('Dir /B /ON *.mp4') Do Set "files=!files! "%%A""
vlc %files% --sout "#gather:std{access=file,dst=output.mp4}" --sout-keep