Board logo

标题: [系统增强] 批处理在windows下的经典应用:批量注册DLL文件 [打印本页]

作者: AK47    时间: 2008-10-23 16:49     标题: 批处理在windows下的经典应用:批量注册DLL文件

有时候用电脑的时候遇到由于DLL文件丢失或损坏而造成的种种故障,大家都只知道只要重新注册一下DLL文件就可以了,但是对于新手来说即使知道是DLL文件损外,但是不知道是哪个DLL文件也束手无策,所以用这个批处理可以循环注册DLL文件,达到解决由于DLL丢失的种种故障!
  1. for %%i in (%windir%\system32\*.dll) do regsvr32.exe /s %%i
复制代码

作者: Batcher    时间: 2008-10-23 17:30

楼主这个代码从哪里copy的?为何用for /l呢?
作者: AK47    时间: 2008-10-23 17:33

在电脑爱好者上面看到的,不好意思,我记错了 /l 可以不用,我已经改过来了
作者: batman    时间: 2008-10-23 17:36

原帖由 AK47 于 2008-10-23 17:33 发表
在电脑爱好者上面看到的,不好意思,我记错了 /l 可以不用,我已经改过来了

这样就可以了吗?
作者: pusofalse    时间: 2008-10-23 17:39

可以不用?、说得好像可有可无一样。在此处绝对不能用/l。
当然若不嫌麻烦也可以使用,绕死。。。代码中还有一处不严谨之处。。。

[ 本帖最后由 pusofalse 于 2008-10-23 17:42 编辑 ]
作者: AK47    时间: 2008-10-23 17:54

原帖由 pusofalse 于 2008-10-23 17:39 发表
可以不用?、说得好像可有可无一样。在此处绝对不能用/l。
当然若不嫌麻烦也可以使用,绕死。。。代码中还有一处不严谨之处。。。


还请指教
作者: pusofalse    时间: 2008-10-23 18:13

regsvr32.exe /s c:\windows\test.dll 这样能注销test.dll没错,但现在是用for中的变量%%i代替dll文件,所谓“变量”即是你不知道它的值是什么样的,如果其中包含空格呢,就会出错了。。。还有%windir%一般会扩展为c:\windows,但如果是类似于d:\win dows这样的,同样也会因为路径信息没有被闭合而被当成了两个参数,(虽然这样的几率很小)。。。所以,凡是路径最好都用""闭合,这是一个很好的习惯。
  1. @for %%a in ("%windir%\*.dll") do echo regsvr32 /s "%%~a"
复制代码
为了保险,还是先用echo输出。。。
作者: AK47    时间: 2008-10-24 09:30

非常感谢,   我明白了
作者: make    时间: 2008-11-2 13:34

我怎么试了之后没用了
作者: hy55310    时间: 2009-6-28 18:42

很好用,我试过了7楼版主说得不错




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2