PDA

Показать полную графическую версию : [решено] Удаление через wmic программ с хитрыми символами в названии


Elven
02-03-2016, 14:31
Намедни приключилась со мной забавная ситуёвина: понадобилось удалить втихаря скайп на одной машине, да так чтобы не побеспокоить пользователя. Казалось бы что проще: получить имя программы через
wmic /node:%computer_name% product get name | find /i "skype"
получилось SkypeT 7.18
и удалить вот так
wmic /node:%computer_name% product where name="SkypeT 7.18" call uninstall
И тут внезапчик: No Instance(s) Available.
Оказывается wmic выдает имя SkypeT 7.18, в то время как на самом деле Skype™ 7.18. Удалить, конечно, получилось. wmic /node:%computer_name% product where IdentifyingNumber="%Identifying_Number%" call uninstall
Но остался вопрос: а как удалить что-то с подобным хитрым символом в названии, если (гипотетически) возникнет ситуация, в которой пользоваться можно только именем?

Iska
02-03-2016, 15:10
Оказывается wmic выдает имя SkypeT 7.18, »
«wmic.exe» выдаёт именно «Skype™ …» — перенаправьте его вывод в файл:
wmic.exe product where "name like 'Skype%%'" get /value >0001.txt
и убедитесь. Символ «™» теряется при попытке перекодировки из кодовой страницы 1200 в 866, поскольку в последней он отсутствует.

а как удалить что-то с подобным хитрым символом в названии, если (гипотетически) возникнет ситуация, в которой пользоваться можно только именем? »
Например, тем же Like'ом, что в примере выше. Или попробовать использовать вывод консоли в юникоде — «"%comspec%" /u …» (не проверялось). Или удалять по коду, а не по имени.




© OSzone.net 2001-2012