Как просмотреть список установленных программ и убрать любую строку со строками Microsoft?
Это на Windows 7 с использованием командной строки и командных файлов.
Я искал список своих программ, удалял большое количество мусора и обновлял большое количество устаревших программ. Я использовал команду wmic для построчного получения текстового документа с каждой программой. Я хочу удалить каждую программу из этого списка с именем "Microsoft", "Windows" или "Visual" в названии. Я пытаюсь сделать это с помощью команды findstr и параметра /v, который позволяет выводить только строки без совпадения. Тем не менее, запуск программы, которую я написал, не находит совпадений в файле, поэтому просто копирует его. Я также попробовал дикие символы на случай, если другие слова вокруг слова испортят его или что-то в этом роде.
Вот пример одной из строк в просматриваемом файле: (LASTNAME-LAPTOP,Microsoft Office Excel Viewer,12.0.6612.1000)
PATH - это просто представление пути к моей папке на флеш-накопителе, в скрипте это фактический путь к папке с обоими файлами RTF внутри. Он содержал пробел, поэтому я помещал кавычки вокруг источника и вывода.
Вот моя программа:
findstr /i /v ".microsoft. .windows. .visual." "E:\PATH\programs.rtf" > "E:\PATH\programs2.rtf"
1 ответ
Запуск программы, которую я написал, не находит совпадений в файле
Я использовал команду wmic для построчного получения текстового документа с каждой программой.
Из wmic:
Все выходные файлы имеют текст в кодировке Юникод (преобразовать в ASCII с ТИПОМ)
Это смущает findstr
который ожидает ASCII в качестве ввода, например:
F:\test>findstr /i /v "microsoft windows visual" unicode.txt
■N a m e V e r s i o n
V A I O D a t a R e s t o r e T o o l 1 . 6 . 0 . 1 3 1 4 0
I n k s c a p e 0 . 9 1 0 . 9 1
M S X M L 4 . 0 S P 3 P a r s e r ( K B 2 7 5 8 6 9 4 ) 4 . 3 0 . 2 1 1 7 . 0
Вы можете обойти это, используя следующую последовательность примеров команд:
wmic product get name,version > unicode.txt
type unicode.txt > programs.txt
findstr /i /v "microsoft windows visual" programs.txt > programs2.txt
В качестве альтернативы:
wmic product get name,version > programs.txt
type programs.txt | findstr /i /v "microsoft windows visual" > programs2.txt
Заметки:
- Используйте простые текстовые файлы (не RTF) в качестве входных данных для
findstr
, type
используется для преобразования из Unicode в ASCII.-
.
символы не нужны вfindstr
команда
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- type - отображает содержимое одного или нескольких текстовых файлов.
- wmic - команда инструментария управления Windows.