您的位置:首页 > 其它

DOS批处理文件的当前目录问题

2013-12-11 18:57 232 查看
昨天安装ClearCase的时候遇到的一个问题。

安装过程中需要执行一个批处理文件:

xcopy /s/d/y/r "%cd%\*.dll" "C:\Program Files\Common Files\Rational\ClearCase\CCVSI\bin\"

regsvr32 "C:\Program Files\Common Files\Rational\ClearCase\CCVSI\bin\ActivityGridContainer.dll"
regsvr32 "C:\Program Files\Common Files\Rational\ClearCase\CCVSI\bin\ActivityWkspcContainer.dll"
regsvr32 "C:\Program Files\Common Files\Rational\ClearCase\CCVSI\bin\CQPackage.dll"

pause


这个批处理的目的是把这个批处理所在目录里的所有dll文件复制到一个特定目录,然后注册一下。

由于是在win8系统,有权限控制,直接双击执行不了,于是右键以管理员身份执行了一下,结果发生了一件糟糕的事情。该脚本将我“C:\Windows\system32”目录下的dll文件全部复制了过去。原来当以管理员身份执行的时候,命令的执行路径变为了“C:\Windows\system32”。

脚本中的

%cd%
应该换成
%~dp0
,具体原因参见:DOS批处理中%cd%和%~dp0的区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐