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

[系统相关] 服务查询命令 net start 与 sc query 的疑问

本帖最后由 不知道是谁 于 2017-9-5 14:00 编辑

net start 与 sc query 都可以查询系统正在运行的服务
还有一个 wmic service 也能达到相同的效果
但是依赖 Windows Management Instrumentation 服务,所以这里不作讨论

sc query 的执行速度是不是比 net start 快?请给出原因。
下面的代码在保留文字的情况下还能再精简、优化或者还有更好、更有效率的判断方式吗?
  1. @echo off
  2. net start|findstr /i /c:"DHCP Client" >nul&&(
  3. echo 服务正在运行,按任意键退出. . .
  4. pause >nul&exit
  5. )
  6. echo 正在启动服务. . .
  7. sc config Dhcp start= auto >nul
  8. net start Dhcp >nul 2>nul
  9. if %errorlevel% NEQ 0 (
  10. echo 服务启动失败,按任意键退出. . .
  11. pause >nul&exit
  12. )
复制代码
  1. @echo off
  2. sc query Dhcp|findstr /i "RUNNING" >nul&&(
  3. echo 服务正在运行,按任意键退出. . .
  4. pause >nul&exit
  5. )
  6. echo 正在启动服务. . .
  7. sc config Dhcp start= auto >nul
  8. net start Dhcp >nul 2>nul
  9. if %errorlevel% NEQ 0 (
  10. echo 服务启动失败,按任意键退出. . .
  11. pause >nul&exit
  12. )
复制代码

我这边测试的结果,两个时间差几乎可以忽略吧。
  1. PS C:\Test> gc 1.bat
  2. net start|findstr /i /c:"DHCP Client"
  3. PS C:\Test> gc 2.bat
  4. sc query Dhcp|findstr /i "RUNNING"
  5. PS C:\Test> powershell -c "Measure-Command {Start-Process 1.bat -wait}"
  6. Days              : 0
  7. Hours             : 0
  8. Minutes           : 0
  9. Seconds           : 1
  10. Milliseconds      : 210
  11. Ticks             : 12101183
  12. TotalDays         : 1.40059988425926E-05
  13. TotalHours        : 0.000336143972222222
  14. TotalMinutes      : 0.0201686383333333
  15. TotalSeconds      : 1.2101183
  16. TotalMilliseconds : 1210.1183
  17. PS C:\Test> powershell -c "Measure-Command {Start-Process 2.bat -wait}"
  18. Days              : 0
  19. Hours             : 0
  20. Minutes           : 0
  21. Seconds           : 1
  22. Milliseconds      : 215
  23. Ticks             : 12158731
  24. TotalDays         : 1.40726053240741E-05
  25. TotalHours        : 0.000337742527777778
  26. TotalMinutes      : 0.0202645516666667
  27. TotalSeconds      : 1.2158731
  28. TotalMilliseconds : 1215.8731
复制代码
环境所限,需要使用 PowerShell 2.0 版本。

TOP

返回列表