Я хочу создать отдельные текстовые файлы из каждой записи в выводе wmic.
пока у меня есть
WMIC.ехе /узел:localhost в /пространство имен:корень\SecurityCenter2 путь AntiVirusProduct вам формат "отображаемое имя"/: КШМ>AVlist.txt
WMIC.EXE-файл /узел:localhost в /пространство имен:корень\SecurityCenter2 путь AntiSpywareProduct вам формат "отображаемое имя"/: КШМ>>AVlist.txt
, которые дают мне список со следующим
узел, displayName
MAINCOMPUTER, антивирус Number1
MAINCOMPUTER, антивирус Number2
Узла,отображаемое имя
MAINCOMPUTER, антивирус Number2
MAINCOMPUTER, Number1 антишпион
то, что я хочу сделать, это создать несколько текстовых файлов, которые будут помечены
Антивирус Number1.txt
Антивирус Number2.txt
Номер1 Антишпион.формат txt
без дубликатов, без перезаписи существующих файлов и без сохранения заголовков "Node,displayName", создаваемых при каждом запуске wmic...
теперь я боролся с этим в течение нескольких дней и придумали огромный беспорядок файла, который в значительной степени зависит от создания временных файлов и их удаления после... не элегантно, слишком сложно, я просто ненавижу это. Итак, мне интересно, есть ли у волшебников здесь более простой решение?
вот этот беспорядок я сделал до сих пор. Не смотрите слишком внимательно на дрянной код.
WMIC.ехе /узел:localhost в /пространство имен:корень\SecurityCenter2 путь AntiVirusProduct вам формат "отображаемое имя"/: КШМ>AVlist.txt
WMIC.EXE-файл /узел:localhost в /пространство имен:корень\SecurityCenter2 путь AntiSpywareProduct вам формат "отображаемое имя"/: КШМ>>AVlist.txt
:: удалить пробелы
for /f "skip=1 delims=" %%a in (AVlist.формат txt) do (
установить str=%%a
установите ул. стр=%:'=%
установите ул. стр=%:,=%
Эхо %стр% >>%Temp%сfiletmp.txt
)
команда xcopy команду %Temp%filetmp.txt %~dp0AVlist.txt / y
del %temp%filetmp.txt /f / q::: удалить повторяющиеся строки
setlocal enabledelayedexpansion
set inputfile=AVlist.txt
set outputfile=AVlist2.txtЭхо-файл для обработки
эхо.
введите %inputfile%
эхо.Если есть сортировка.тхт-дель-отсортированный.txt
сортировать %inputfile% / O %temp%сортировка.txtЕсли существует %outputfile% del %outputfile%
набор строчка=
for / f "delims==" %%L in (сортировка.txt) do (
задайте эту прямую=%%л
если нет"!эта линия!"=="!последняя строка!" эхо !эта линия!>>%выходной_файл%
набор строчка=%%л
)del сортировка.txt
Эхо удалены:
эхо.
setlocal disabledelayedexpansion:: удалить заголовок
ren AVlist2.txt AVlist2.формат txt.старый
команда findstr /V /б /с:"узел", "отображаемое имя" AVlist2.формат txt.старый > AVlist2.txt
тип avlist2.txt
пауза
Yikes!