2017-10-19 48 views
1
@ECHO OFF 
:Loop 
IF "%1"=="" GOTO completed 
FOR %%F IN (%1) DO IF "%%F"%3==0 echo %%F 
SHIFT 
GOTO Loop 
:completed 

我編寫了這個代碼,用於在Windows中使用批處理腳本檢查數組中的數據。 運行在CMD此bat文件作爲在蝙蝠腳本參數中找到模

screenshot

但由3整除的值未顯示

+2

您當前'For'循環代碼這樣做,'IF 「1」 3 == 0回聲1'。模操作字符是百分比,這意味着在批處理文件中它必須加倍。也就是說,該操作只是一個算術表達式,作爲''Set'命令的一部分,並且'/ A'選項沒有使用'Set'來爲您進行算術計算。 – Compo

+0

其實我想寫一個讀取10個整數的程序,然後打印所有可以被3整除的數字 –

回答

3

你有一對夫婦的問題。首先,您不需要同時使用for循環和goto循環來遍歷腳本參數。選一個。接下來,if語句不能執行數學運算。他們不能計算模數。您必須使用set /a來計算模數(num%3)。

下面是一個工作示例。

@ECHO OFF 
setlocal enabledelayedexpansion 

for %%I in (%*) do (
    set /a mod = %%I %% 3 
    if !mod! equ 0 echo %%I 
)