找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22048|回复: 2

[系统相关] 批处理代码中末尾只有一个pause为什么运行完毕后需执行两次“按任意键……”

[复制链接]
发表于 2016-10-30 19:56:08 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-10-30 20:23 编辑

自编写的清理某病毒批处理遇到的一个小问题
先贴代码:
  1. @echo off

  2. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs" /v lpk /t REG_SZ /d "lpk.dll" /f > nul
  3. sc config Distribuobj start= disabled > nul
  4. net stop Distribuobj > nul

  5. set exePath=
  6. for /f "skip=1 delims=" %%a in ('wmic service where Name^="Distribuobj" get PathName') do (
  7. set exePath=%%a
  8. )
  9. echo ◇"%exePath%"◇
  10. if not defined exePath goto end
  11. call :lis %exePath%
  12. :lis
  13. echo "%*"

  14. set exe=
  15. for /f "delims=" %%b in ('echo %*^|findstr /r /i "^%SystemDrive%\\windows\\system32\\[a-z][a-z][a-z][a-z][a-z][a-z]\.exe$"') do (
  16. set exe=%%b
  17. )
  18. echo ☆"%exe%"☆
  19. if not defined exe goto end
  20. if exist %exe%\ (goto :eof) else del /f /q %exe%

  21. sc delete Distribuobj

  22. :end
  23. echo.
  24. echo.
  25. echo  LPK已清除完毕,请现在重启电脑,重启后免疫将生效!!!
  26. echo.
  27. echo.
  28. echo ---------------------请按任意键退出该程序或直接关闭此窗口!--------------------
  29. pause>nul
复制代码
代码执行后能达到清理病毒并免疫的效果,但还是有个奇怪的地方,就是要按两次任意键才能退出,但是明明只有一个pause,为什么会执行两次呢?请各位帮忙分析分析,谢谢!
注:测试此代码时小心del命令,有误删文件的风险!

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿发笼统的标题

查看全部评分

发表于 2016-10-30 20:13:22 | 显示全部楼层
先弄清楚call的作用和执行过程
 楼主| 发表于 2016-10-30 21:38:53 | 显示全部楼层
本帖最后由 liumtz 于 2016-10-30 21:52 编辑

回复 2# pcl_test


    感谢提醒,看了下CALL的执行过程明白了。。。  在末尾加一个exit就可以直接退出整个批处理了,这样就不会再次执行:lis标签后面的代码了。

修改一下:
... ...
if exist %exe%\ (exit) else del /f /q %exe%
... ...
echo ---------------------请按任意键退出该程序或直接关闭此窗口!--------------------
pause>nul
exit
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:26 , Processed in 0.023108 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表