例如,查看 KB983590 是否已安装:
systeminfo | find "KB983590"
但是如果我想知道是否安装了多个 KB 该怎么办?
答案1
尝试这个:
systeminfo | findstr "KB"
您还可以使用 /i 进行不区分大小写的搜索。运行 findstr /? 可获得更多选项。
如果您只想搜索补丁的子集,请在条目之间使用空格:
systeminfo | findstr "KB958488 KB976902 KB976932"
答案2
您可以使用如下代码行:
FOR /F "usebackq tokens=5 delims= " %i IN (`netstat -ano ^|find "ESTABLISHED"`) DO @tasklist /fi "pid eq %i" | find "%i"
或者,更简短一些,这样做同样有效:
netstat -a -b -n -o | findstr ESTABLISHED || tasklist | findstr PID
答案3
我会选择“find”而不是“findstr”(更简单/更容易)
systeminfo | find /I "kb"
您将获得您的清单。
使用 for /f 可以更轻松地组织数据,例如
for /f "tokens=2* delims= " %F IN ('systeminfo ^| find /I "kb"') DO ECHO %F%G%H
这将删除每行开头的编号序列。
如果您只想要 KB#####,请将 tokens 值更改为 2(不带星号),并将结尾的 ECHO 更改为 ECHO %F
for /f "tokens=2* delims= " %F IN ('systeminfo ^| find /I "kb"') DO ECHO %F%G%H>>"%USERPROFILE%\desktop\systeminfo.txt"
会将其作为 .TXT 文件放到你的桌面上
当然如果你想要它在批处理文件中,请确保你的 %F 有一个额外的 % (%%F)
答案4
您还可以使用 && 连接多个命令
setlocal
set USERNAME=rbrown
net user %USERNAME% /domain | Find /i "Full Name" && net user %USERNAME% /domain | Find /i "Password expires"
endlocal
Full Name Richard Brown
Password expires 8/04/2021 9:32:54 am