CMD 批处理 - 查找并使用上一个命令中的字符串并插入到下一个操作中

问题描述 投票:0回答:1

很难找到一种方法(如果可能的话),即查找并使用一个命令中的文本字符串,并在下一个命令中使用该字符串。

示例是,如果脚本返回一堆不同的项目,但我正在寻找具有“Acct Num:X23422”的内容,其中 X23422 会针对每个命令输出进行更改(这意味着每个命令不会有多个 Acct Num)输出),一旦显示多行输出,批处理将搜索“Acct Num:”并使用下一组字符“提取”X23422(或显示的任何其他#),然后在下一个命令。

因此,本质上找到并使用 X23422 作为该 CMD 会话的验证。

请告诉我这样的事情是否可能,如果可以,如何实现?

batch-file cmd
1个回答
0
投票
for /f "tokens=3" %%e in ('whateveryourcommandis^|findstr /i /L /c:"Acct Num: "') do set "accnum=%%e"

echo The account number for further uses is : %accnum%

使用

findstr
查找
whateveryourcommandis
输出中包含“Acct Num:”的行,并将该行的第三个标记(假设您的行是
Acct Num: X23422
)分配给
%%e
,然后分配给环境变量
accnum

然后在

accnum
命令中使用
echo
将其显示到控制台。

需要插入符号

^
,因为管道
|
必须在
command-to-be-executed
语句中的
for
内转义。

请参阅提示中的

for /?
findstr /?
set /?
echo /?
,以获取更多文档 - 或有关 SO 的数千个示例。

© www.soinside.com 2019 - 2024. All rights reserved.