2014-04-02 32 views
1

我正在對ffmpeg屏幕截圖工作,我不想在啓動時開始錄製,所以我需要給輸出視頻文件一個名字,每當我開始錄製我都會有所不同沒有發現這個問題非常接近我所需要的,所以我結束了這個批處理文件命令:分配日期和時間輸出文件

@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]無法找到一個合適的輸出格式爲'E:-04-2014_02:35'

E:-04-2014_02:35無效參數

我知道它是因爲mytime:中的特殊字符,但我不知道如何改變它。

+0

奇怪的是,你原來的帖子和報告並不搭配。您的最新版本是從原始帖子中刪除您在「時間」處理中的冒號。請解釋。 – Magoo

回答

2

**編輯爲獨立的日期和時間_

如果你只需要它的唯一的文件名,周圍不要亂用特殊字符和本地化的格式。您可以使用:

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和我wan't它是這樣的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 
+0

太好了如果我只是不想「_」分開他們 –

+1

看到我編輯的答案 – Stephan

+0

我的意思是如果可能的話就像這樣2014_02_04_16_15_29 –