Board logo

标题: 帮组看下一个网银盾的批处理 [打印本页]

作者: cyhong    时间: 2011-1-18 17:25     标题: 帮组看下一个网银盾的批处理

建行的网银盾安装后,有一个自动启动服务WDMonitorCCB和一个自动启动程序WDCertM_CCB.exe,由于网银盾不常用,请人写了个批处理,以关闭这两个东西,请各位给修正一下,
  1. @echo off
  2. :TopStart
  3. Cls
  4. @echo  启动/关闭网银盾
  5. @echo.
  6. @echo.
  7. @echo.
  8. @echo.    1 关闭
  9. @echo.   
  10. @echo.
  11. @echo.    2 开启
  12. @echo.   
  13. @echo.
  14. @set /p choice=请选择相关操作(1,2):
  15. @if /I %choice% == 2 goto dakai
  16. @if /I %choice% == 1 goto guanbi
  17. goto TopStart
  18. :dakai
  19. ::打开
  20. sc config WDMonitorCCB start= auto
  21. sc start WDMonitorCCB
  22. REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v wdcertm_ccb /t REG_SZ /d "\"C:\WINDOWS\system32\WatchData\Watchdata CCB CSP v3.2\WDCertM_CCB.exe"" /f
  23. start "" "C:\WINDOWS\system32\WatchData\Watchdata CCB CSP v3.2\WDCertM_CCB.exe"
  24. goto :eof
  25. :guanbi
  26. ::结束
  27. sc config WDMonitorCCB start= disabled
  28. sc stop WDMonitorCCB
  29. tasklist|find /i "WDCertM_CCB.exe"
  30. IF %ERRORLEVEL% == 0 ntsd -c q -pn WDCertM_CCB.exe
  31. ::TASKKILL /IM WDCertM_CCB.exe /F
  32. REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v wdcertm_ccb /f
  33. goto :eof
复制代码

作者: Batcher    时间: 2011-1-18 17:58

你希望修正什么地方?
作者: hanyeguxing    时间: 2011-1-18 18:16     标题: 回复 1楼 的帖子

reg add 一句中存在错误:
  1. @echo off
  2. set b=WDMonitorCCB
  3. set w=wdcertm_ccb
  4. set "r=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
  5. set "d=%wndir%\system32\WatchData\Watchdata CCB CSP v3.2\%w%.exe"
  6. :TopStart
  7. Cls
  8. echo  启动/关闭网银盾
  9. echo.
  10. echo.
  11. echo.
  12. echo.    1 关闭
  13. echo.   
  14. echo.
  15. echo.    2 开启
  16. echo.   
  17. echo.
  18. set/p choice=请选择相关操作(1,2):
  19. for %%a in (1 2) do if "%%a"=="%choice%" goto:%%a
  20. goto :TopStart
  21. :2:打开
  22. sc config %b% start= auto
  23. sc start %b%
  24. reg add "%r%" /v %w% /d "\"%d%\"" /f
  25. start "" "%d%"
  26. goto:eof
  27. :1:结束
  28. sc config %b% start= disabled
  29. sc stop %b%
  30. reg delete "%r%" /v %w% /f
  31. taskkill /im %w%.exe /f
复制代码

更好的方法就是依靠服务的启动或程序状态来判断操作需要

[ 本帖最后由 hanyeguxing 于 2011-1-18 18:18 编辑 ]
作者: cyhong    时间: 2011-1-18 18:16

只是想问问有什么地方可以修改的更好
作者: hanyeguxing    时间: 2011-1-18 18:24

每运行一次就切换一次状态:
  1. @echo off
  2. set b=WDMonitorCCB&set w=wdcertm_ccb
  3. set "r=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
  4. set "d=%windir%\system32\WatchData\Watchdata CCB CSP v3.2\%w%.exe"
  5. reg query "%r%" /v %w% >nul 2>nul&&(
  6.     echo 当前状态:已启用,按任意键进行关闭&pause>nul
  7.     sc config %b% start= disabled
  8.     sc stop %b%
  9.     reg delete "%r%" /v %w% /f
  10.     taskkill /im %w%.exe /f
  11.     goto:eof
  12. )
  13. echo 当前状态:已关闭,按任意键进行启用&pause>nul
  14. sc config %b% start= auto
  15. sc start %b%
  16. reg add "%r%" /v %w% /d "\"%d%\"" /f
  17. start "" "%d%"
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-19 19:17 编辑 ]
作者: cyhong    时间: 2011-1-19 19:05

年关了,比较忙,没及时回复
出现这个。
[attach]3384[/attach]
作者: cyhong    时间: 2011-1-19 19:06

原帖由 hanyeguxing 于 2011-1-18 18:24 发表
每运行一次就切换一次状态:@echo off
set b=WDMonitorCCB&set w=wdcertm_ccb
set "r=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
set "d=%wndir%\system32\WatchData\Watchdata CCB CSP v3.2\%w%.exe" ...


[attach]3385[/attach]
作者: hanyeguxing    时间: 2011-1-19 19:16

不好意思,%wndir%变量中少打了一个i,应该是%windir%,已修改
作者: cyhong    时间: 2011-1-19 19:16

%wndir%
中间少了

i
作者: cyhong    时间: 2011-1-19 19:19

版主,真快,我刚发现,您就回复了

感谢版主
作者: cyhong    时间: 2011-1-20 08:21

关于是否“已启用”好像是以检测自动启动项是否存在为依据的,

如果换成检测服务是否启动和程序是否运行为依据则更好。。。




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