Windows 如果“14”LEQ“7”()失败

Windows 如果“14”LEQ“7”()失败,windows,batch-file,if-statement,compare,Windows,Batch File,If Statement,Compare,我正在制作一个程序来改变一个.gcd文件中的坐标值,我得到了单坐标线,但双坐标线却没有。程序应该将双坐标拆分,并将它们作为单坐标单独运行。为了实现这一点,我将坐标的形式排序到代码的不同部分,以提供正确的输出。使用字符串的长度,我可以轻松地对它们进行排序。在编程时,我遇到了一个简单的问题 IF " " LEQ " " () 指挥部。给定值,它会得到错误的结果。一个很好的例子是: @echo off :start if "14" LEQ "7" goto next echo this shoul

我正在制作一个程序来改变一个.gcd文件中的坐标值,我得到了单坐标线,但双坐标线却没有。程序应该将双坐标拆分,并将它们作为单坐标单独运行。为了实现这一点,我将坐标的形式排序到代码的不同部分,以提供正确的输出。使用字符串的长度,我可以轻松地对它们进行排序。在编程时,我遇到了一个简单的问题

IF " " LEQ " " ()
指挥部。给定值,它会得到错误的结果。一个很好的例子是:

@echo off

:start
if "14" LEQ "7" goto next
echo this should be printed
pause
exit /b

:next
echo this shouldn't be printed
pause
exit /b
删除似乎可以解决这个问题,但我需要比较变量(可以有空格),以证明括号的合理性。因此,问题是:

为什么口译员得到了错误的结果,我怎样才能轻松地解决这个问题

谢谢,汤姆

if "14" LEQ "7" goto next
这将进行词典字符串比较,其中14<7,因为第一个不相等的字符1<7

正如您所指出的,如果您删除引号,下面将进行数字比较

if 14 LEQ 7 goto next
这与if/?帮助:

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

在第一种情况下,作为被比较字符串的一部分的引号不是数字,因此不执行数字转换,并且通过词汇规则对字符串进行比较

你也这么说,但我需要比较变量,变量可以有空格。但是,数值不包含空格,也不需要引号。相反,一旦用引号括起来,它就不再是一个数值,而是一个字符串。因此,您必须提前决定/区分是否要比较数值和字符串值

这将进行词典字符串比较,其中14<7,因为第一个不相等的字符1<7

正如您所指出的,如果您删除引号,下面将进行数字比较

if 14 LEQ 7 goto next
这与if/?帮助:

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

在第一种情况下,作为被比较字符串的一部分的引号不是数字,因此不执行数字转换,并且通过词汇规则对字符串进行比较


你也这么说,但我需要比较变量,变量可以有空格。但是,数值不包含空格,也不需要引号。相反,一旦用引号括起来,它就不再是一个数值,而是一个字符串。因此,您必须提前决定/区分是否要比较数值和字符串值。

谢谢!这完全回答了我的问题。谢谢!这完全回答了我的问题。