Назад | Перейти на главную страницу

Как я могу найти несколько значений в выводе командной строки Windows?

Например, чтобы узнать, установлен ли KB983590:

systeminfo | find "KB983590"

Но что, если я захочу узнать, установлено ли более одного КБ?

Попробуй это:

systeminfo | findstr "KB"

Вы также можете использовать / i для поиска без учета регистра. Запустите findstr /? для еще большего количества вариантов.

Если вы хотите найти только подмножество патчей, используйте пробелы между записями:

systeminfo | findstr "KB958488 KB976902 KB976932"

Вы можете использовать такую ​​строку:

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

Я бы пошел по маршруту 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 #####, измените значение токенов только на 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)