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

在Win8上以管理员身份运行ClearCase安装批处理时出现问题,批处理错误地将系统32目录下的DLL文件复制到了目标目录。文章解释了如何通过使用%~dp0代替%cd%来修正此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值