将包含点的参数传递给批处理脚本

时间:2015-03-09 02:29:43

标签: batch-file

因此我无法将带有句点的参数传递给批处理脚本文件。 ./myScript.bat 23.97

在我的剧本中,如果我这样做

arg1 = %1
echo %arg1%

这将显示23.97,但如果我进行比较

arg1 = %1
   if "%arg1%" == "23.97"
      echo %arg1%

然后它根本没有显示在参数上。 Fyi,我并没有试图以浮点数来处理它,只是一个正常的字符串。我不确定为什么它不起作用,任何帮助都表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

事实上,您可以将一个点(.)作为参数传递给批处理文件。导致问题的代码部分是在设置变量和使用if语句时使用的语法。


设置变量的正确语法(如在命令行上执行help set所述)是

  

显示,设置或删除cmd.exe环境变量。

     

SET [variable=[string]]

     

variable指定环境变量名称     string指定要分配给变量的一系列字符。

考虑到这一点,将arg1设置为传递给批处理文件的第一个参数的正确方法是

set arg1=%1

if语句的问题在于您尝试在布尔表达式之后和下一个语句之前添加新行。正确的语法由help if描述为

  

在批处理程序中执行条件处理。

IF [NOT] ERRORLEVEL number command 
IF [NOT] string1==string2 command  
IF [NOT] EXIST filename command

你的if语句可以被理解为这样:

if "%arg1%"=="29.37" echo arg1
相关问题