分配date和时间输出文件

我正在ffmpeg屏幕捕获工作,我不想开始logging,所以我需要给输出的video文件一个名字是不同的,每次我开始logging我确实发现这个问题非常接近我所需要的,所以我结束了这个命令在一个batch file

 @echo off For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b) For /f "tokens=1-2 delims=/" %%a in ('time /t') do (set mytime=%%a%%b) cd /d E:\ffmpeg\bin ffmpeg -f dshow -i video="screen-capture-recorder" -c:v libx264 -r 10 -crf 37 -pix_fmt yuv420p E:\%mydate%_%mytime%.flv 

现在我在ffmpeg cmd中得到一个错误:[NULL @ 0270d2c01]无法find合适的输出格式'E:-04-2014_02:35'

E:-04-2014_02:35无效的参数

我知道这是因为mytime的特殊字符,但我不知道如何改变它。

**编辑以分隔日期和时间_

如果你只需要它的独特的文件名,不要搞乱特殊的字符和本地化的格式。 您可以使用:

 for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set DateTime=%%i set DateTime=%DateTime:~0,8%_%DateTime:~8,6% REM or: set filename=%DateTime:~0,8%_%DateTime:~8,6%.flv echo %DateTime% 

编辑到“问题是这样的文件名是这样20140204_161529,我不想这样2014_02_04_16_15_29”:在for循环中使用这个:

 set oldfilename=%DateTime:~0,8%_%DateTime:~8,6%.flv set newfilename=%DateTime:~0,4%_%DateTime:~4,2%_%DateTime:~6,2%_%DateTime:~8,2%_%DateTi‌​me:~10,2%_%DateTime:~12,2%.flv