我正在尝试提取 findstr 结果查询的最后一个单词
我运行的命令
findstr /i %1 x:\itlogs\who_when.txt | findstr /i %2
我得到的结果
12/02/2018 10:17:58 SmithS Steve Smith B0K9VY1
13/02/2018 09:29:13 SmithS Steve Smith B0K9VY1
我需要的结果就是最后一句话B0K9VY1所以我可以跑SCCM RemoteControl $computername
(它会总是是我查询结果最后一行的最后一个词findstr
)
答案1
我需要的结果就是最后一个单词 B0K9VY1
尝试以下批处理文件并进行调整以适应需要:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=6" %%i in ('findstr /i %1 x:\itlogs\who_when.txt ^| findstr /i %2') do (
set last_word=%%i
SCCM RemoteControl !last_word!
)
endlocal
但我只想要最后一行的最后一个字,而不是每一行!
移出echo !last_word!
for 循环,如下所示:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=6" %%i in ('findstr /i %1 x:\itlogs\who_when.txt ^| findstr /i %2') do (
set last_word=%%i
)
SCCM RemoteControl !last_word!
endlocal
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 启用延迟扩展- 延迟扩展将导致变量在执行时而不是在解析时扩展。
- 对于/f- 循环命令以执行另一个命令的结果。