我在下面写了示例批处理脚本,变量COUNT正在更新,但不知何故MY_ROOT没有得到更新,我在这里遗漏了什么?
@echo off
setlocal ENABLEDELAYEDEXPANSION
set MY_ROOT= C:\
set COUNT=0
if 1 == 1 (
set MY_ROOT = D:\
echo MY_ROOT = !MY_ROOT!
set /A COUNT=10
echo Count = !COUNT!
)
:end
**o/p:**
MY_ROOT = C:\
Count = 10
感谢。
答案 0 :(得分:5)
空格在字符串set
语句的两个方面都很重要。您正在分配一个名为“MY_ROOT Space ”
答案 1 :(得分:2)
最令人困惑的功能之一'在批处理文件中,空格成为变量名称的一部分。当您使用SET
时,移动等号周围的空格。您也可以使用下面的代码中的引号来更安全地赋值。
@echo off
setlocal ENABLEDELAYEDEXPANSION
set "MY_ROOT=C:\"
set COUNT=0
if 1 == 1 (
set "MY_ROOT=D:\"
echo MY_ROOT = !MY_ROOT!
set /A COUNT=10
echo Count = !COUNT!
)
:end