[请问] bat批次档的变量问题

楼主: RedFox (回来了)   2022-05-31 01:30:42
TESTA.bat 内容:
@echo off
setlocal EnableDelayedExpansion
If not defined myValue SET myValue=A
:st
echo !myValue!
SET myValue=AA
Call TESTB.bat
echo !myValue!
pause
goto st
TESTB.bat 内容:
@echo off
setlocal EnableDelayedExpansion
If not defined myValue SET myValue=B
echo !myValue!
SET myValue=BB
echo !myValue!
输出结果:
A
AA
BB
AA
想请问为什么输出第四行,会是AA而非BB?
跳到TESTB.bat运行时,已经将myValue设为BB了
怎么回到TESTA.bat,myValue仍然是AA
要如何修改才能符合我预期的结果?
作者: yzfr6 (扮关二哥!)   2022-05-31 06:26:00
设几个中断点看一下程式怎么跑就知道了
楼主: RedFox (回来了)   2022-05-31 09:37:00
我知道这个批次档怎么跑的问题在于,我呼叫另个批次档,读取某变量,并对其修改回到原程序,该变量又变回原样好像变量只修改表面?我自己google搜寻过,但没找到说明
作者: weltschmerz (威尔特斯克˙闷死)   2022-05-31 11:29:00
你的变量只是区域的 不是全域变量B继承A 但A没有继承B
作者: OrzOGC (洞八达人.拖哨天王)   2022-05-31 13:23:00
改用PS啦

Links booklink

Contact Us: admin [ a t ] ucptt.com