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

[系统相关] 求批处理提取wmic命令语句返回结果中的指定字内容

本帖最后由 pcl_test 于 2017-3-27 22:02 编辑

各位大大:需求如下:
wmic service get Name, PathName | findstr db2sysc   返回结果如下:
DB2-0                                            E:\PROGRA~2\IBM\SQLLIB\bin\db2syscs.exe
DB2INST1                                         E:\PROGRA~2\IBM\SQLLIB\bin\db2syscs.exe
我想得到第一列的结果,直接把命令放到for中,提示我“此时不应有 |。
  1. for /f "tokens=1*" %%s in ('wmic service get Name, PathName | findstr db2sysc') do (
  2.     @echo %%s
  3. )
复制代码
问题:
1、wmic service where PathName 有没有like或*这样的通配符,因为路径不确定。
2、for的in('')是否支持 |
3、求解:如果第2列的值以db2syscs.exe结尾时获取第1列的值?

需要转义'|'

TOP

回复 2# bailong360


    请问,如何转义?刚试完,加^无效

TOP

回复 3# taosicai
逗号也要转义
  1. @echo off
  2. for /f "delims=" %%s in ('wmic service get Name^, PathName ^| findstr db2sysc') do (
  3.     echo %%s
  4. )
  5. pause
复制代码

TOP

回复  taosicai
逗号也要转义
bailong360 发表于 2015-6-17 15:07



    谢谢,刚刚也发现,要转,刚试完,正要回复,就看见您回复了。

TOP

like命令的语法
wmic Process Where "Name like '%ost.exe'" Get CommandLine
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

获取第一列的值
@echo off
for /f "tokens=1" %%s in ('wmic service get Name^, PathName ^| findstr "db2syscs.exe"') do (
    echo %%s
)
pause
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

返回列表