2017-10-19 49 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 
)