我想创建一个批处理文件,当运行时,创建一个从0到100的随机整数,然后通过if语句运行它,检查它是奇数还是偶数.我遇到了一些麻烦,所以这就是我到目前为止的情况.
@echo off set /a num=%random% %%100 +1 if ( num % 2 == 0 ) { //even } else { //odd }
我得到的错误是 - "此时意外数字"
@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
操作,因为它%
是一个特殊字符,它本身需要被a转义%
.
请注意,{
并且}
是普通字符,对批处理没有特殊意义,必须遵循备注
rem remark string
有一个常用的漏洞利用
::comment
实际上,一个破碎的标签,可能会产生无法预料的副作用(如结束代码块)