【问题标题】:Conditional not passing in batch script有条件的不传入批处理脚本
【发布时间】:2014-10-06 20:07:25
【问题描述】:

我有一个非常简单的批处理脚本,但由于某种原因,条件没有像我期望的那样工作:

SET RIG=%1
IF /I RIG==Polar (
    SET SQLSERVER=SQL01
    SET MONITOR=SQL02
    SET TESTSETTING="test"
    SET TESTCONTAINER="test2 
) ELSE ( 
    ECHO Your input was %1.
)

当我通过以下命令时:testrun.bat Polar 我得到 ECHO 语句返回:Your input was Polar."

我尝试将%1 放在引号中,弄乱了括号的布局方式,并且我已经查看了 ss64.com 的批处理脚本 IF 语句的语法,但我就是无法弄清楚这一点。

【问题讨论】:

  • 你需要%RIG% 而不是RIGNAME
  • 刚刚在下面的答案中看到了这一点。我觉得自己很笨,因为我在同一个脚本的其他地方使用了变量。

标签: batch-file


【解决方案1】:

RIGNAME 永远不会等于 Polar

现在您可以尝试将值分配给 rigname 而不是 rig

即使这样,你也需要比较 %rigname%Polar 来访问 rignamecontent 而不是字符串 RIGNAME

【讨论】:

  • 天哪。我在同一个脚本的其他地方都使用了变量,但不知何故错过了这一点。漂亮,谢谢。这很有意义。此外,在撰写本文时,Rigname/Rig 只是我的一个错字。我会在问题中解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多