| 『楼 主』:
 [求助]帮忙看一下在if里面设置环境变量为什么会出问题
 
使用 LLM 解释/回答一下 
 
 
下面是个示例========================
 @ECHO OFF
 
 ECHO CURPATH0=%PATH%
 IF "%DATE:~5,2%"=="12" (
 ECHO PATH IN=%PATH%
 SET CURPATH=%PATH%
 ECHO.
 SET CURPATH
 
 ECHO.
 ECHO CURPATH999=%CURPATH%
 
 CALL d:\T2.BAT>abc.log
 @ECHO OFF
 
 SET PATH=%CURPATH%
 
 )
 @ECHO ON
 ====================================
 上述代码中,因为T2.BAT里使用set path=xxx,并没有加上%path%,所以会洗掉系统的环境变量;但我不能改.
 所以为了保存,使用了一个中间变量来临时保存一下.
 
 但发现,当在if中执行时,ECHO CURPATH999=%CURPATH%执行结果是
 CURPATH999=
 而我手动再敲入上述命令后,又能正常显示--也就是说放在bat中始终不正常
 
 可当我去掉if语句时,也就是直接执行上述()内的内容时,该语句就显示正常
 
 为什么呢?太奇怪了.因为只赋值一次,应该用不到setlocal ENABLEDELAYEDEXPANSION吧,况且,似乎也和这个没关系吧
 
 
 
 
 |