Я хочу создать отдельные текстовые файлы из каждой записи в выводе wmic.
Пока у меня есть
WMIC.exe / Узел:localhost / Пространство имен:\\root\SecurityCenter2 Путь AntiVirusProduct Получить displayName /Format:csv>AVlist.txt
WMIC.exe / Узел:localhost / Пространство имен:\\root\SecurityCenter2 Путь AntiSpywareProduct Получить displayName /Format:csv>>AVlist.txt
которые дают мне список со следующим
Узел, DISPLAYNAME
ГЛАВНЫЙ КОМПЬЮТЕР, Number1 Antivirus
ГЛАВНЫЙ КОМПЬЮТЕР, Number2 Antivirus
Узел, DISPLAYNAME
ГЛАВНЫЙ КОМПЬЮТЕР, Number2 Antivirus
ГЛАВНЫЙ, № 1 Антишпион
Что я хочу сделать, это создать серию текстовых файлов, которые будут помечены
Number1 Antivirus.txt
Number2 Antivirus.txt
Number1 Antispyware.txt
без дубликатов, без перезаписи существующих файлов и без сохранения заголовков «Node, displayName», создаваемых при каждом запуске wmic ...
Теперь я боролся с этим в течение нескольких дней и придумал огромный беспорядок в файле, который сильно зависит от создания временных файлов и удаления их после ... не элегантного, слишком сложного, я просто ненавижу это. Итак, мне интересно, есть ли у волшебников здесь более простое решение?
Вот беспорядок, который я сделал до сих пор. Не смотрите слишком внимательно на дрянное кодирование.
WMIC.exe / Узел:localhost / Пространство имен:\\root\SecurityCenter2 Путь AntiVirusProduct Получить displayName /Format:csv>AVlist.txt
WMIC.EXE / Узел:localhost / Пространство имен:\\root\SecurityCenter2 Путь AntiSpywareProduct Получить displayName /Format:csv>>AVlist.txt
:: удалить пробелы
for / f "skip = 1 delims =" %% a in (AVlist.txt) do (
set str = %% a
set str =% str: '=%
set str =% str:, =%
echo% str% >>% temp%\filetmp.txt
)
xcopy% temp%\filetmp.txt% ~ dp0\AVlist.txt / y
del% temp%\filetmp.txt / f / q:: удалить дубликаты строк
setlocal enabledelayedexpansion
set inputfile = AVlist.txt
set outputfile = AVlist2.txtэхо-файл для обработки
эхо.
введите% inputfile%
эхо.если существует sorted.txt del sorted.txt
sort% inputfile% / O% temp%\sorted.txtесли существует% outputfile% del% outputfile%
установить lastline =
for / f "delims ==" %% L in (sorted.txt) do (
установить эту линию = %% L
если не "!thisline!"=="!Последняя линия!"эхо!thisline!>>% выходной_файл%
установить lastline = %% L
)del sorted.txt
эхо Дубликаты удалены:
эхо.
setlocal disabledelayedexpansion:: удалить заголовок
ren AVlist2.txt AVlist2.txt.old
findstr / v / b / c: «Node, displayName» AVlist2.txt.old> AVlist2.txt
введите avlist2.txt
Пауза
Хлоп!