
%cd%和 %~dp0在bat脚本中出现的频率比较高,两者有相似,也有不同,稍不留神就会出错。
本文通过示例来解析两者的不同
使用范围:
%cd%:批处理脚本(bat脚本)、命令行窗口
%~dp0:批处理脚本(bat脚本)
bat脚本执行时,两者代表的值是否会变化:
%cd%:会。因为代表的是当前目录
%~dp0:不会。因为代表的是脚本文件在磁盘的位置
示例脚本内容:
cd-dp0.bat
@echo off
echo this is %%cd%% : %cd%
echo this is %%~dp0 : %~dp0
(1)在C:\Users\Administrator执行脚本
C:\Users\Administrator>f:\cd-dp0.bat
执行结果:
this is %cd% :C:\Users\Administrator
this is %~dp0 :f:\
(2)在F:\执行脚本
F:\>cd-dp0.bat
执行结果:
this is %cd% :F:\
this is %~dp0 :F:\
%dp0在bat脚本中的一个常用例子:
run.bat:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set CP=.;JavaStudy.jar
FOR %%j IN (%~dp0lib\*.jar) DO set CP=!CP!;%%j
echo %CP%
java -cp %CP% frame.App
