我创建了几个 bat 文件来录制我最喜欢的音频流,但我想在输出文件中包含日期。
有没有办法使用下面的代码将日期包含在输出文件名中?
我希望文件显示与此类似的格式wzakfrimix-Jan 01 2016.mp3
或足够接近的格式。
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "http://208.46.117.156:80/7/648/72151/v1...et/wzak-fm" :sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}:file{dst="X:\WzakFriMix.mp3",no-overwrite}:sout-keep
答案1
为 VLC 录制的流添加日期戳
我创建了几个 bat 文件来录制我最喜欢的音频流,但我想在输出文件中包含日期。
有没有办法将日期包含在以下代码的输出文件名称中?例如,我希望文件显示类似于“wzakfrimix-Jan 01 2016.mp3”的格式
看看下面的某个方法是否能按预期完成此操作,假设您最喜欢的流 URL 可以作为数组插入到单独的行中并按下面的脚本注释以及[第一个]最上面的示例进行制表。
最上面的脚本会循环迭代您最喜欢的 URL 流路径(数组的大小取决于您的需要)。否则(也许你现在如何使用多个批处理文件来做到这一点)你可以手动将月份名称、月份日期数和年份变量硬编码到目标文件名中(以下为例子)。
同样,下面的两个变体可能足以满足您的需要,但我确实在每个示例的顶部设置了一些脚本逻辑变量。
剧本说明
这些设置为作为批处理脚本运行,而不是从命令行手动复制和粘贴;否则,我需要添加示例来执行此操作。
下图是顶部脚本示例,其中每个http://~
路径都需要有效,并且每行都应该不同。删除不需要的行或根据需要添加其他行,但所有行都需要有有效的路径来下载您要流式录制到 MP3 文件中的文件。
批处理脚本示例
使用流的 URL 列表(作为批处理脚本)
@ECHO ON
SET VLC=C:\Program Files (x86)\VideoLAN\VLC\vlc.exe
SET MM=%DATE:~4,2%
SET YYYY=%DATE:~10,4%
SET DD=%DATE:~7,2%
:VBSDynamicBuild
SET TempVBSFile=%tmp%\~tmpMnthTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO WScript.Echo(MonthName(%MM%,True))>>"%TempVBSFile%"
FOR /F %%A IN ('CSCRIPT //nologo "%TempVBSFile%"') DO SET Mmm=%%~A
:VLCStreamURLs
FOR %%B IN (
"http://208.46.117.156/7/648/72151/v1/interactive.akacast.akamaistream.net/wzak-fm"
"<http://ValidPath2/~>"
"<http://ValidPath3/~>"
"<http://ValidPath4/~>
"<http://ValidPath5/~>"
"<http://ValidPath6/~>"
"<http://ValidPath7/~>"
) DO (
"%VLC%" "%%~B" :sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}::file{dst="X:\%%~NB-%Mmm% %DD% %YYYY%%%~XB",no-overwrite} :sout-keep
)
GOTO EOF
每个批处理脚本单个 URL(可能与您现在执行的操作类似)
@ECHO ON
SET VLC=C:\Program Files (x86)\VideoLAN\VLC\vlc.exe
SET MM=%DATE:~4,2%
SET YYYY=%DATE:~10,4%
SET DD=%DATE:~7,2%
:VBSDynamicBuild
SET TempVBSFile=%tmp%\~tmpMnthTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO WScript.Echo(MonthName(%MM%,True))>>"%TempVBSFile%"
FOR /F %%A IN ('CSCRIPT //nologo "%TempVBSFile%"') DO SET Mmm=%%~A
:VLCStreamURL
"%VLC%" "http://208.46.117.156/7/648/72151/v1/interactive.akacast.akamaistream.net/wzak-fm" :sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}::file{dst="D:\wzakfrimix-%Mmm% %DD% %YYYY%.mp3",no-overwrite} :sout-keep
GOTO EOF