DOS批处理中%cd%和%~dp0的异同

939阅读 0评论2011-07-04 meteorm
分类:WINDOWS

  在DOS的批处理中,有时候需要知道当前的路径。在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。

 

   这两个变量的用法和代表的内容一般是不同的。

 

  1. %cd% 可以用在批处理文件中,也可以用在命令行中;展开后,是驱动器盘符:+当前目录,如:

 

   在 c:\dir 下,

 

Bat代码 
echo %cd% 

echo %cd%

   显示为,

 

Bat代码 
c:\dir 

c:\dir

   %cd%的时间内容是可以被改变的,比如CD命令就可以改变它的内容。

 

 2. %~dp0    只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,是批处理文件所在的盘符:+路径。在执行这个批处理文件的过程中,它展开后的内容是不可以改变的。

 

 

  比如在D盘下有个批处理文件,dirshow.bat:

 

Bat代码 
@echo off  
echo this is %%cd%%  %cd%  
echo this is %%~dp0 %~dp0 

@echo off
echo this is %%cd%%  %cd%
echo this is %%~dp0 %~dp0 
   在C:\ 下执行它,输出为:

 

Bat代码 
C:\>D:\dirshow.bat  
this is %cd%  C:\  
this is %~dp0 D:\ 

C:\>D:\dirshow.bat
this is %cd%  C:\
this is %~dp0 D:\ 

上一篇:LNK1104 intermittantly when building
下一篇:批处理 cd %~dp0 含义