创建一个随机数并检查它是奇数还是偶数

时间:2016-01-02 09:43:10

标签: batch-file if-statement random

我希望创建一个批处理文件,在运行时,创建一个0到100之间的随机整数,然后通过if语句运行它,检查它是奇数还是偶数。 我遇到了一些麻烦,所以这就是我到目前为止所做的。

@echo off
set /a num=%random% %%100 +1
if ( num % 2 == 0 ) {
     //even
}
else
{
    //odd
}

我得到的错误是 - "此时数字是意外的"

2 个答案:

答案 0 :(得分:5)

@ECHO OFF
SETLOCAL
set /a num=%random% %%100 +1
SET /a nummod2=num %% 2
IF %nummod2% == 0 (ECHO %num% is even) ELSE (ECHO %num% is odd)

GOTO :EOF

常规IF语法为if [not] operand1==operand2 somethingtodo,其中operand1和operand2都是字符串。如果字符串包含分隔符,如 Space Tab 或其他对批处理具有特殊含义的字符,则字符串必须为"enclosed in quotes"

从根本上说,if会比较字符串。运算符必须是一组固定的运算符之一[== equ neq gtr geq lss leq]因此cmd反对num,它期望运算符。

无法在if语句的参数范围内执行计算。

执行%%操作需要

mod,因为%是一个特殊字符,本身需要%转义。

请注意,{}是普通字符,对批处理没有特殊意义,必须遵循备注

rem remark string

有一种常用的漏洞利用

::comment

实际上,一个破损的标签,可能会产生无法预料的副作用(如结束代码块)

答案 1 :(得分:0)

以下打印0到99之间的随机数,并打印它是偶数还是奇数:

@echo off

set /a num = %random% %% 100
echo %num%
set /a odd = num %% 2
if %odd% EQU 1 (echo odd) else (echo even)