我正在编写一个批处理脚本,如下所示:
@echo off
setlocal enabledelayedexpansion
set Current_Node="Node1"
if "%Current_Node%" == "Node1" (
echo "ITS INSIDE IF LOOP"
) else (
echo "ITS NOT INSIDE IF LOOP"
)
现在,根据上面的代码,它不应该转到else部分,但实际上它总是进入else部分。 我不知道问题是在语法中还是我比较字符串的方式。 所以,请帮帮我。
答案 0 :(得分:0)
你的报价太多了。设置值时不要使用引号,或者不要在"%Current_Node%"
上使用引号。
当您使用Current_Node="Node1"
时,%Current_Node%将等于“Node1”,但“%Current_Node%”将等于“”Node1“”。
@echo off
setlocal enabledelayedexpansion
set Current_Node=Node1
echo %Current_Node%
if "%Current_Node%" == "Node1" (
echo ITS INSIDE IF LOOP
) else (
echo ITS NOT INSIDE IF LOOP
)
答案 1 :(得分:0)
根据建议,在没有必要的地方使用引号。我相信您需要使用EQU而不是==等。如果仍有问题请尝试以下。
@echo off
setlocal enabledelayedexpansion
set Current_Node=Node1
if %Current_Node% EQU Node1 (
echo ITS INSIDE IF LOOP
) else (
echo ITS NOT INSIDE IF LOOP
)
答案 2 :(得分:0)
设置变量时有时需要双引号,因此解决方案可以简单地将术语用双引号括起来,如下面第二行所示。它们不会成为变量的一部分。
@echo off
set "Current_Node=Node1"
if "%Current_Node%" == "Node1" (
echo "ITS INSIDE IF LOOP"
) else (
echo "ITS NOT INSIDE IF LOOP"
)