每当我激活此代码时,它会立即关闭控制台。
set RAND=%RANDOM% %%100
if %RAND% gtr '25'
如果if为false,我希望它继续运行,如果是true,我希望它继续运行。
答案 0 :(得分:3)
两行代码 - 四个问题
set RAND=%RANDOM% %%100
if %RAND% gtr '25'
首先,要将变量设置为计算结果,您需要set /a
。目前,rand
将设置为12345 %100
- 一个字符串(一个%
,因为%
转义%
)
然后将第二行调用为
if 12345 %100 gtr '25'
违反了if
语法 - %100
会混淆它,因为它需要一个比较运算符(==,equ,neq,gtr,lss,leq,geq),因此它会生成错误消息并停止。如果您使用点运行,请单击并傻笑,然后窗口将立即关闭。您需要在调试时从命令提示符运行批处理程序。
下一个问题是25
永远不会等于'25'
- 引号是被比较的字符串的一部分。将它们放在两侧或从两侧省略它们。 Batch仅使用字符串 - set /a
语法理解并控制从字符串更改为数字表示所需的转换操作(仅限整数),if
将尝试将参数转换为数字以进行比较 - 失败时任何一方,if
都会恢复为字符串比较。
最后,如果比较已经评估为if
,那么您还没有向true
提供任何操作 - 这是对if
结构的另一种违反。
答案 1 :(得分:0)
将暂停放在文件末尾...暂停不允许批处理文件关闭,除非您按一个键(如空格键)。
@echo off
cls
echo This is just an example
pause
exit