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

来源:互联网 发布:开启dmz后,被域名攻击 编辑:程序博客网 时间:2024/06/16 00:22

昨天安装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的区别

0 0
原创粉丝点击