[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

20元求解决!dll初始化失败,不能关机

循环使用某些命令,如 ping.exe netstat.exe findstr .exe时,关机容易出现“dll初始化失败”,不能关机,把dll重新注册一下就好,但下次关机又会出现这种问题。而且注册时间太长, 是否有基本的解决办法?请大咖帮忙解决下,非常感谢!
应用系统:windows2003sever windows server2008r2

完整代码发出来看看你是怎样循环使用的,也许可以优化一下。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

常用循环,如:

:top
@ping -n  2 127.0>nul
netstat -an |findstr :210  >210.txt
@ping -n  4 127.0>nul
goto top

TOP

如果注册dll后不再运行这些命令,关机就不会弹出错误提示框吗?
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 zrf0123 于 2018-10-1 12:06 编辑

回复 4# zaqmlp


   即使注册过,在运行命令的情况下,有的系统能够关机 有的系统仍然关机不正常

TOP

回复 5# zrf0123
不是,我是问注册dll后不再运行你的bat,是不是就不会有这个问题?得先找出是什么导致这个问题的
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

延迟可以不用ping而使用netstat自身的间隔功能。试试结果!
例如 间隔5秒写入记录
  1. netstat -an 5|find “:210”>210.txt
复制代码

TOP

回复 6# zaqmlp


    只要不运行bat,关机重启都正常

TOP

回复 3# zrf0123


    用其它命令代替ping延时可以吗?例如:timeout
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# flashercs


    这样的内循环是可以正常关机的,但是需要外循环...

TOP

回复 9# Batcher
用其他命令代替ping延时,如pathping、choice、timeout均无法关机,如用timeout会循环提示:
timeout.exe -dll初始化失败 netstat.exe -dll 初始化失败 findstr -dll 初始化失败
而且此时任务管理器中已无相应进程,但无法关机或重启机器

TOP

这种死循环的代码执行时间长了之后cmd进程占用的CPU和内存是否会比较大?
关机之前手工把cmd进程结束掉,再关机还会报错吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 12# Batcher

连续工作24小时是没问题的,在重启前把cmd结束掉的话可以正常关机

TOP

本帖最后由 flashercs 于 2018-10-2 11:58 编辑

回复 13# zrf0123
可以用批处理延迟应该就没事了
  1. :top
  2. netstat -an |findstr :210  >210.txt
  3. REM 延迟参数单位 ms, 例如延迟5000ms 就如下所示
  4. call :delay 5000
  5. goto top
  6. exit /b
  7. :delay
  8. if "%1"=="" goto :eof
  9. set DelayTime=%1
  10. set TotalTime=0
  11. set NowTime=%time%
  12. set /a newminute=1%NowTime:~3,2%-100
  13. set /a newsecond=1%NowTime:~-5,2%%NowTime:~-2%0-100000
  14. REM 读取起始时间,时间格式为:13:01:05.95
  15. :delay_continue
  16. set /a oldminute=newminute
  17. set /a oldsecond=newsecond
  18. set NowTime=%time%
  19. set /a newminute=1%NowTime:~3,2%-100
  20. set /a newsecond=1%NowTime:~-5,2%%NowTime:~-2%0-100000
  21. set /a TotalTime+=(%newminute%-%oldminute%+60)%%60*60000+%newsecond%-%oldsecond%
  22. if %TotalTime% lss %DelayTime% goto delay_continue
  23. goto :eof
复制代码

TOP

回复 14# flashercs

    测试了一次,尽管有提示但能关机,但太吃cpu了,占了我e3半个核!
求比较节能的方法!

TOP

返回列表