%cd% 和%~dp0%的区别及cd跨盘符切换路径问题
在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。
(1)%cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。
(2)%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,
@echo off echo this is %%cd%% %cd% echo this is %%~dp0 %~dp0 echo switch to another folder: cd /d D:\aQproject echo this is %%cd%% %cd% echo this is %%~dp0 %~dp0 pause
在tmp目录中执行cdTest.bat脚本结果如下
在d盘执行cdTest.bat脚本结果如下
可以看到执行脚本的路径不一样,%cd%不一样;脚本中通过cd /d切换到别的路径,得到的环境变量%cd%的值也不一样。
PS:上面实例中用的是cd /d能够直接跨盘符切换,脚本在c盘切换到d盘中。直接cd +别的盘符路径是不能切换的,要通过先输入d:(盘符)切换到所要去盘符,cd +路径实现切换。可以看出cd /d直接切换更方便,在批处理文件找那个很方便。