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

[系统相关] 指定服务无法用批处理启动如何解决?谢谢

[复制链接]
发表于 2016-2-15 17:25:58 | 显示全部楼层 |阅读模式
  1. @echo off
  2. for /f "skip=3 tokens=4" %%i in ('sc query ShellHWDetection') do set "zt=%%i" &goto :next

  3. :next
  4. if /i "%zt%"=="RUNNING" (
  5. echo 已经发现该服务在运行,现在已经停止运行
  6. net stop VMwareHostd
  7. net stop VMAuthdService
  8. net stop VMnetDHCP
  9. sc stop "VMware NAT Service"
  10. net stop VMUSBArbService
  11. netsh interface set interface name="VMware Network Adapter VMnet1" admin=DISABLED  
  12. netsh interface set interface name="VMware Network Adapter VMnet8" admin=DISABLED  


  13. ) else (
  14. echo 该服务现在处理停止状态,将进行启动
  15. net start VMAuthdService
  16. net start VMnetDHCP
  17. sc config "VMware NAT Service" start= demand
  18. net start "VMware NAT Service"
  19. net start VMUSBArbService
  20. net start VMwareHostd
  21. netsh interface set interface name="VMware Network Adapter VMnet1" admin=ENABLED  
  22. netsh interface set interface name="VMware Network Adapter VMnet8" admin=ENABLED  


  23. )
  24. pause
复制代码
 楼主| 发表于 2016-2-14 19:54:38 | 显示全部楼层

新手请教,解析下列代码意思,谢谢

本帖最后由 kingbin 于 2016-2-14 20:54 编辑

@echo off
for /f "skip=3 tokens=4" %%i in ('sc query ShellHWDetection') do set "zt=%%i" &goto :next

:next
if /i "%zt%"=="RUNNING" (
echo 已经发现该服务在运行,现在已经停止运行
net stop ShellHWDetection
) else (
echo 该服务现在处理停止状态,将进行启动
net start ShellHWDetection
)
pause

评分

参与人数 1PB -2 收起 理由
pcl_test -2 未按版规发帖

查看全部评分

发表于 2016-2-14 21:50:48 | 显示全部楼层
本帖最后由 ivor 于 2016-2-14 21:57 编辑
  1. 你也算发过一次帖子了,代码为什么不放在这里呢?下次不回答了
复制代码
  1. @echo off
  2. rem 跳过三行,取第四段字符串到%%i,即 %%i=RUNNING 或者 !(RUNNING)  goto 是跳转到 :next标签
  3. for /f "skip=3 tokens=4" %%i in ('sc query ShellHWDetection') do set "zt=%%i" &goto :next

  4. rem :next标签的代码区域↓
  5. rem 就是判断zt==RUNNING执行一些操作
  6. :next
  7. if /i "%zt%"=="RUNNING" (
  8. echo 已经发现该服务在运行,现在已经停止运行
  9. net stop ShellHWDetection
  10. ) else (
  11. echo 该服务现在处理停止状态,将进行启动
  12. net start ShellHWDetection
  13. )
  14. pause
  15. rem :next标签的代码区域↑
复制代码
发表于 2016-2-15 16:46:13 | 显示全部楼层
判断 ShellHWDetection 这个服务的状态。
如果该服务处于运行状态,就把它停掉;否则就把它启动。
发表于 2016-2-15 17:50:09 | 显示全部楼层
回复 1# kingbin


    有些服务启动有前置要求,看提示先把前置的服务启动了
 楼主| 发表于 2016-2-15 22:57:12 | 显示全部楼层
本帖最后由 kingbin 于 2016-2-15 22:59 编辑

回复 5# ivor
请问怎样看前置要求,是看服务程序的属性?但没提示到什么内容有关是需要启动哪个服务程序!这代码不是我写的,是网上找的,然后添加几个命令的,请指教一下,谢谢
发表于 2016-2-17 08:39:41 | 显示全部楼层
回复 6# kingbin


    服务的属性里面,最有一个Tab有个依赖。如果里面是空的,那说明该服务不依赖于其它服务。
发表于 2016-2-17 14:40:13 | 显示全部楼层
状态的切换是需要时间的。停止服务后中间加个ping 延迟一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 09:17 , Processed in 0.020396 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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