我試圖通過批量使用循環來生成腳本以在多個視頻卡輸入上運行ffmpeg。到目前爲止,我有:批處理命令腳本,導致零的無效數字?
這是除了當它試圖做偉大的工作:
set /a cam=%%c
時c="08"
或c="09"
。我得到:
無效的號碼。數字常量是十進制(17), 十六進制(0x11)或八進制(021)。
是什麼給出的?下面的代碼:
@echo off
setlocal enabledelayedexpansion
for %%c in (01 02 03 04 05 06 07 08 09 10 11) do (
set /a cam=%%c
if !cam! leq 8 (
echo foobar_sd%%c
) else (
echo barfoo_hd%%c
)
pause
)
那麼如何解釋07的凸輪值呢?當然leq需要數字比較,所以它會嘗試再次將「08」變成一個數字,即八進制? – deed02392
@ deed02392 - 不,LEQ不需要數字值。如果任何一方包含一個非數字字符,則會執行基於字符串的比較而不是數字比較。 0填充會導致比較結果提供正確的預期結果。 – dbenham
這非常有趣,我不認爲用兩個字符串進行'少於'的比較是合乎邏輯的,因爲如何以相同的方式量化字符串的大小以比較兩個十進制數的大小? – deed02392