我希望创建一个批处理文件,在运行时,创建一个0到100之间的随机整数,然后通过if语句运行它,检查它是奇数还是偶数。 我遇到了一些麻烦,所以这就是我到目前为止所做的。
@echo off
set /a num=%random% %%100 +1
if ( num % 2 == 0 ) {
//even
}
else
{
//odd
}
我得到的错误是 - "此时数字是意外的"
答案 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)