Board logo

标题: [其他] [已解决]批处理如何截取一个命令的返回信息中的一部份? [打印本页]

作者: yuan_53770    时间: 2011-1-19 00:54     标题: [已解决]批处理如何截取一个命令的返回信息中的一部份?

比如:

C:\>sc qc WMDrive
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: WMDrive
        TYPE               : 1   KERNEL_DRIVER
        START_TYPE         : 4   DISABLED
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : \??\C:\WINDOWS\system32\drivers\WMDrive.sys
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : WMDrive
        DEPENDENCIES       : RPCSS
        SERVICE_START_NAME :


以上是查询wmdrive服务的返回信息,我想截取其中的\??\C:\WINDOWS\system32\drivers\WMDrive.sys部份,如何做到??

[ 本帖最后由 yuan_53770 于 2011-1-21 01:04 编辑 ]
作者: spark12    时间: 2011-1-19 02:34     标题: 可以这样提取

  1. for /f "tokens=1* delims=:" %%a in ('sc qc WMDrive^|find "BINARY_PATH_NAME"') do (set result=%%b)
  2. set result=%result:~1,-2%
复制代码

作者: yuan_53770    时间: 2011-1-21 01:08

谢谢楼上的帮助,我在dos联盟也求得一个答案,分享一下:
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "tokens=1* delims=:" %%i in ('sc qc WMDrive') do (
  4.         set "binary=%%i"
  5.         set binary=!binary: =!
  6.         if "!binary!"=="BINARY_PATH_NAME" (
  7.                 set "getPath=%%j"
  8.                 set getPath=!getPath:"=!
  9.                 goto show
  10.         )
  11. )
  12. :show
  13. echo !getPath!
  14. pause
复制代码





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