【发布时间】:2014-07-25 20:55:03
【问题描述】:
我的代码是
IF "%1" == "-?" ( start randomhelp.bat ) IF NOT DEFINED %1 (goto notdefined) ELSE ( IF NOT DEFINED %2 (goto notdefined) ELSE ( IF NOT DEFINED %3 (goto notdefined) ELSE ( set %1=0 set /a heh=%random% * (%3 - %2 + 1) / 32768 + %2 setx %1=%heh% ) ) :notdefined
但是,每当我尝试运行时,它都说 / 在此时是意外的,但是除了等式之外,我没有 / 。我想做的是让你输入类似的东西
随机随机值 1 50
它将环境变量randomvalue设置为1到50之间的随机数。请帮忙,我不知道它有什么问题。抱歉,如果这似乎难以理解。
【问题讨论】:
-
你设置了 /a heh=,你打算把 /a 放在那里吗?
-
@IrishGeek82:是的,
/a必须在那里进行算术运算,而不是将变量设置为字符串(请参阅set /?) -
基本问题是
setcommand 中的关闭)被解释为ifstatement 的关闭)。所以/被解释为下一个命令——当然会失败。 Rafaels 答案在任何ifblocks 之外使用 set 命令,Adils 答案使用封闭"和setcommand 来告诉解析器整个事物属于set。 -
您不必检查所有三个参数是否存在。如果第三个存在,则前两个不能为空。只需检查
%3。如果存在,你知道%1和%2也必须存在。
标签: windows batch-file terminal