我从批处理开始,我需要做一个简单的练习,但是我有一些问题。
在练习中,我需要使用cmd
引入3个参数,并检查是否只有3个,没有更多,也不少。然后,我需要检查每个参数,看看每个人是否都等于一个字母,(%1
应该是a
,%2
b
和%3
{{ 1}})。
c
答案 0 :(得分:2)
而是使用:
if "%~1" == "" (
goto end
) else (
goto c1
)
括号不是if语法的比较部分的一部分。尽管它们不会产生语法错误,但您所处条件的逻辑是错误的,因为它们将被视为比较字符串的一部分。
使用%~1
删除参数周围的引号(如果有的话),并使用引号处理参数中的空格。
在括号之前和之后放置空格,因为在某些情况下,如果不与命令分开,则可能会出现语法错误。我个人更喜欢新行,因为它们可以提高可读性。
最好从检查最后一个参数(在您的情况下为4)开始,就像省略了一个一样,cmd解析器将从1
开始计数。