看起來最新版本中傳入的變數可能有問題。我得到以下結果,其中有幾個似乎位置錯誤或現在根本不正確。
這是直接來自 MCE 的內容:
BatFileName “E:\VideoCaptures\Cleaned Files\TVTransfer.bat”
VideoOutPut “Zoo Oz is Oz s03 e06 08-03-2017”
VideoInPut “Zoo-S03E06-OzIsOz-62982148-0”
FolderOutPut “E:\VideoCaptures\Cleaned Files”
VideoWidth “1080”
OutputExt “.ts”
FileSize “6”
Month “988.95”
Year “03”
Season “2017”
OutputExt 之後的所有內容都不正確,
這是手動執行時的樣子,這是正確的:
BatFileName “E:\VideoCaptures\Cleaned Files\TVTransfer.bat”
VideoOutPut “Zoo Oz is Oz s03 e06 08-03-2017”
VideoInPut “Zoo-S03E06-OzIsOz-62982148-0”
FolderOutPut “E:\VideoCaptures\Cleaned Files”
VideoWidth “1080”
OutputExt “.ts”
FileSize “6” <<<< 我以為這應該是 MB,而不是 GB 吧??
Month “06”
Year “2017”
Season “03”
RBoy
(RBoy)
2
你有試著把 MCEBuddy 傳給自訂指令的原始資料傾印到檔案嗎?把它貼上來。解析它的腳本可能有問題。也請附上你的轉換紀錄。
RBoy
(RBoy)
3
我觉得 MCEBuddy 把文件大小传成了 6,988.95,而你的脚本用 , 当分隔符把它拆开了。或者你的终端代码页设置成了会把逗号变成空格的版本。再看看 MCEBuddy 的原始输出。
现在不在家,所以今晚我会上传日志,不过我不知道如何转储原始数据。我在另一个帖子里用的是同一套函数。
编辑:这是 MCE 里调用的 .bat,应该完全没有被改动过。
ECHO ON
setlocal EnableDelayedExpansion
SET BatFile="E:\VideoCaptures\Cleaned Files\TVTransfer.bat"
SET OutputFileName="%~n1"
SET InputFileName="%~n2"
SET FolderOutput="%~3"
SET WideoWidth="%~4"
SET OutputExtension="%~5"
SET OutputFileSize="%~6"
SET OADMonth="%~7"
SET OADDay="%~8"
SET OADYear="%~9"
SHIFT /4
SET SEASON=%~9
echo BatFileName %BatFile% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo VideoOutPut %OutputFileName% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo VideoInPut %InputFileName% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo FolderOutPut %FolderOutput% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo VideoWidth %WideoWidth% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo OutputExt %OutputExtension% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo FileSize %OutputFileSize% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo Month %OADMonth% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo Year %OADYear% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
echo Season %SEASON% >> C:\Users\Wolverine\Desktop\MCEVARS.txt
Call %BatFile% %OutputFileName% %InputFileName% %FolderOutput% %WideoWidth% %OutputExtension% %OutputFileSize% %OADMonth% %OADDay% %OADYear% %SEASON%
RBoy
(RBoy)
5
無論是在批次檔中還是查看轉換記錄,都會告訴它正在傳遞什麼給你的批次檔。
我懷疑這就是你的問題所在。
好的,我会去查看日志,因为我实在不明白你说的“原始数据”是什么意思。批处理文件只是把从MCE传来的数据写入文本文件,在数据到达文本文件之前,我并未对变量数据做任何处理。
RBoy
(RBoy)
7
你的腳本正在解析參數,我認為問題就在這裡(終端機字碼頁問題)。請參考這篇文章,了解如何在不經處理的情況下取得整個命令列及所有參數(或者更好的是,你可以在記錄檔中找到它們,看看 MCEbuddy 傳送給命令提示字元批次檔的內容,並與你的批次檔實際接收到的內容進行比較)
你說得對,的確是檔案大小變數裡的逗號惹的禍。唉,那個逗號帶給我的麻煩可不只是一個 .bat 檔案,幾乎把我的「worker」.bat 腳本撕得支離破碎……兩小時後,我想我總算搞定了,現在正在測試。
那真是一篇很棒的討論串,謝謝你。現在我又多懂了一點。