Batch file 批处理-如果语句和负值

Batch file 批处理-如果语句和负值,batch-file,Batch File,我试图用负数工作,但显然我在做一些愚蠢的事情。 附加的脚本将始终显示: testA = 15 testB = -15 testA GTR 0 testA GEQ 0 testB GTR 0 testB GEQ 0 到目前为止,我的印象是-15是你确实是对的。数学董事会协会尚未颁布任何关于整数排序的法律的最新修改,因此您的问题必须在别处解决:-) 事实上,导致此问题的是“值周围的0引号。去掉它们。这样做时,您会得到以下更合理的输出: testA = 15 testB = -15 testA

我试图用负数工作,但显然我在做一些愚蠢的事情。 附加的脚本将始终显示:

testA = 15
testB = -15

testA GTR 0
testA GEQ 0

testB GTR 0
testB GEQ 0

到目前为止,我的印象是-15是你确实是对的。数学董事会协会尚未颁布任何关于整数排序的法律的最新修改,因此您的问题必须在别处解决:-)

事实上,导致此问题的是
值周围的
0
引号。去掉它们。这样做时,您会得到以下更合理的输出:

testA = 15
testB = -15

testA GTR 0
testA GEQ 0

testB LEQ 0
testB LSS 0
如果因为
gtr
和相关运算符实际上是字符串比较,而不是数字比较,则您的
“0”
案例不起作用的原因。它们用于数字的原因深深隐藏在
if
语句的帮助中:

这些比较是通用的,因为如果string1和string2都由所有数字组成,则字符串将转换为数字并执行数字比较


由于
决不能被视为“数字”,因此执行的比较是基于字符串的比较,在ASCII中,
(代码点0x22)小于任何数字(0x30到0x39)或
-
符号(0x2d)在
testB

的情况下,你确实是对的。数学董事会协会最近没有对管理整数排序的法律进行任何修改,因此你的问题必须放在别处:-)

事实上,是
值周围的
引号引起了这个问题。摆脱他们。当您这样做时,您会得到更合理的输出:

testA = 15
testB = -15

testA GTR 0
testA GEQ 0

testB LEQ 0
testB LSS 0
如果因为
gtr
和相关运算符实际上是字符串比较而不是数字比较,则您的
“0”
案例不起作用。它们用于数字运算的原因深藏在
if
语句的帮助中:

这些比较是通用的,因为如果string1和string2都由所有数字组成,则字符串将转换为数字并执行数字比较


由于
决不能被视为“数字数字”,因此执行的比较是基于字符串的比较,在ASCII中,
(代码点0x22)小于任何数字(0x30到0x39)或
-
符号(0x2d),在
testB

@Aacini的情况下,我会投票,我并不自豪。我更愿意为有用的答案投票,但如果我为幽默投票,那也很好:-)谢谢!我可以发誓我试过了,有没有引用。好吧,回到批量游戏学校…@Aacini,我会投票的,我不骄傲。我更愿意为有用的答案投票,但如果我为幽默投票,那也很好:-)谢谢!我可以发誓我试过了,有没有引用。好吧,回到批量游戏学校。。。