我想在(COM\d+)
命令的输出中搜索模式mode
。我已经尝试过:
mode | findstr /R (COM\d+)
但是它不返回任何东西。如果您能帮助我知道执行此操作的正确方法,将不胜感激。
P.S.1 由于有了这些注释,我现在有了mode | findstr /RC:"COM[0-9*]"
,它可以产生具有给定匹配项的行。现在,我需要找到一种方法来仅打印出匹配项。也许使用for /f ... in
来循环字符串?
第二章:有人告诉我mode | findstr /RC:"COM[123456789][0123456789]*"
是更安全的选择。
答案 0 :(得分:1)
所以,为什么不只使用一个 for
循环命令并添加 \
来在 { {1}} : FindStr
错误::由于某些原因,命令行无法在首次运行时回显,
"\C\O\M[0-9*]."
的 COM 编号命令,仅在第二次运行时起作用,但将echo/%_com%
添加到Call
命令中,结果将在第一次运行时显示... >
echo/%_com%
- 结果第一行命令: 3
- 结果第二行命令: COM3
- 结果第三行命令: COM3:
for /f "tokens=2delims=COM:" %i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=%i"&& call echo/%_com%
for /f "tokens=2delims=COM:" %i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=COM%i"&& call echo/%_com%
for /f "tokens=2delims=COM:" %i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=COM%i:"&& call echo/%_com%
- 对 命令执行第一个 结果: 3
- 对 命令执行第二个 : COM3
- 对 命令执行第三个 结果: COM3:
通过命令行查看自己:
@echo off & setlocal enabledelayedexpansion
for /f "tokens=2delims=COM:" %%i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=%%i"&& echo/!_com!
for /f "tokens=2delims=COM:" %%i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=COM%%i"&& echo/!_com!
for /f "tokens=2delims=COM:" %%i in ('mode ^| findstr /RC:"\C\O\M[0-9*]."') do set "_com=COM%%i:"&& echo/!_com!
- 结果:状态为准COM3:
对不起,我的英语英语
答案 1 :(得分:0)
听起来您只需要“ COM1”或“ COM3”作为输出。如果是这样,可以这样做:
for /f "tokens=4 delims=: " %A in ('mode ^| findstr /i /r "COM[0-9]*:"') do @echo %A
它将产生以下输出:
COM1