好的,我正在做的簡要說明:我使用Windows Media Center(Windows 7)每天晚上記錄Jeopardy。然後我使用Handbrake將.wtv文件轉換爲.mkv文件,然後將它們傳輸到我的NAS,以便稍後使用Plex Media Server/Center觀看它們。而不是「手工」這樣做,我試圖使用批處理文件作爲計劃任務來自動化進程。最初,我已經設置了一個腳本,以便我可以右鍵單擊>發送到> convert.bat,它將啓動Handbrake的命令行界面並轉換文件,將輸出移動到我的NAS,並刪除原始文件(工作很好)。嘗試使用批處理文件處理具有禁止字符的文件名
現在,我在做的是啓動批處理腳本作爲計劃任務,並循環播放「錄製的電視」目錄的內容,並循環播放任何.wtv文件以轉換/移動/刪除它們。
問題出在Windows Media Center使用「!」正確命名Jeopardy文件的事實, (例如:Jeopardy!_KHQ_2012_12_04_21_12_12.wtv),這完全掩蓋了我的劇本。 「Send To」批處理文件效果很好,但是當我遍歷目錄中的* .wtv文件時,它將返回所有文件名與「!」剝離出來,這意味着我不能跟他們蹲下。沒有「!」的文件做順利進行。
在此先感謝任何能讓我指出正確方向的人! (如果你碰巧看到這個劇本可以改善任何其他地區,那也沒關係......)
這裏是我在嘗試使用的基本代碼:
@echo off
setlocal ENABLEDELAYEDEXPANSION
SET count=0
SET getFolder=C:\Users\Public\Recorded TV\
SET ripFolder=C:\Rips\
SET putFolder=Z:\Videos\Recorded TV\
FOR %%F IN ("%getFolder%*.wtv") DO (
SET /A count=!count!+1
REM DETERMINE OUTPUT FILENAME
for /f "tokens=5,6,7,8,9,10 delims=\_" %%a in ("%%F") do (
set show=%%a
set station=%%b
set year=%%c
set month=%%d
set day=%%e
set hour=%%f
REM GENERATE OUTPUT NAMING CONVENTION
set output=!show! s!year!e!month!!day! !hour!
)
REM PROCESS WITH HANDBRAKE CLI
"C:\Program Files\Handbrake\HandBrakeCLI.exe" -i "%%F" -t 1 -c 1 -o %ripFolder%!OUTPUT!.mkv -f mkv --deinterlace="fast" --crop 58:60:2:2 --strict-anamorphic -e x264 -q 20 --vfr -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0 --gain=0 --audio-copy-mask none --audio-fallback ffac3 -x ref=1:weightp=1:subq=2:rc-lookahead=10:trellis=0:8x8dct=0 --verbose=1
REM MOVE CONVERTED FILE TO NAS
copy "%ripFolder%!OUTPUT!.mkv" "%putFolder%"
REM DELETE ORIGINAL
del "%%F"
REM DELETE LOCAL RIP
del "%ripFolder%!output!.mkv"
)
echo %count% files processed
pause
ENDLOCAL
有逃脫「!」的方式焦炭。它的東西就像^ !!或^^!要麼 !!或類似的東西。玩...你會發現它。 – djangofan
我知道如何逃避一個角色。問題是,在我能對它做任何事情之前,需要逃脫的角色被剝離出來。一些模糊的建議隨後「玩弄,你會發現」並不完全有幫助。不管怎麼說,多謝拉。 – ci5ic
我並不是故意要冒犯你,但你也可以用更容易重現的方式提出你的問題。如果是這種情況,我會更具體。 – djangofan