标题: [系统相关] 求批处理提取wmic命令语句返回结果中的指定字内容 [打印本页]
作者: taosicai 时间: 2015-6-17 14:40 标题: 求批处理提取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中,提示我“此时不应有 |。”- for /f "tokens=1*" %%s in ('wmic service get Name, PathName | findstr db2sysc') do (
- @echo %%s
- )
复制代码
问题:
1、wmic service where PathName 有没有like或*这样的通配符,因为路径不确定。
2、for的in('')是否支持 |
3、求解:如果第2列的值以db2syscs.exe结尾时获取第1列的值?
作者: bailong360 时间: 2015-6-17 14:45
需要转义'|'
作者: taosicai 时间: 2015-6-17 15:01
回复 2# bailong360
请问,如何转义?刚试完,加^无效
作者: bailong360 时间: 2015-6-17 15:07
回复 3# taosicai
逗号也要转义- @echo off
- for /f "delims=" %%s in ('wmic service get Name^, PathName ^| findstr db2sysc') do (
- echo %%s
- )
- pause
复制代码
作者: taosicai 时间: 2015-6-17 15:23
回复 taosicai
逗号也要转义
bailong360 发表于 2015-6-17 15:07
谢谢,刚刚也发现,要转,刚试完,正要回复,就看见您回复了。
作者: gawk 时间: 2015-6-17 16:18
like命令的语法
wmic Process Where "Name like '%ost.exe'" Get CommandLine
作者: gawk 时间: 2015-6-17 16:21
获取第一列的值
@echo off
for /f "tokens=1" %%s in ('wmic service get Name^, PathName ^| findstr "db2syscs.exe"') do (
echo %%s
)
pause
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |