我编写了一个批处理文件(Windows os),该文件使用%CD%打印当前工作目录,但是即使更改当前目录,%CD%的值也不会更改。在“ IF”语句的上下文中,这种奇怪的行为发生在我身上。
这是文件夹和批处理文件Test.bat的快照
我从dir3调用批处理文件。
如果代码如下,就可以正常工作:
@echo off
@echo %CD%
cd /d c:\temp\dir1
@echo %CD%
,但是在下面的代码中,它不起作用,如提示窗口的快照所示。即使更改了当前工作目录,它也会打印第一个目录-c:\ temp \ dir3。
@echo off
if exist "c:\bom" (
@echo file exist already
) else (
@echo %CD%
cd /d c:\temp\dir1
@echo %CD%
)