Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление через wmic программ с хитрыми символами в названии (http://forum.oszone.net/showthread.php?t=312245)

Elven 02-03-2016 14:31 2612145

Удаление через wmic программ с хитрыми символами в названии
 
Намедни приключилась со мной забавная ситуёвина: понадобилось удалить втихаря скайп на одной машине, да так чтобы не побеспокоить пользователя. Казалось бы что проще: получить имя программы через
Код:

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 2612160

Цитата:

Цитата Elven
Оказывается wmic выдает имя SkypeT 7.18, »

«wmic.exe» выдаёт именно «Skype™ …» — перенаправьте его вывод в файл:
Код:

wmic.exe product where "name like 'Skype%%'" get /value >0001.txt
и убедитесь. Символ «™» теряется при попытке перекодировки из кодовой страницы 1200 в 866, поскольку в последней он отсутствует.

Цитата:

Цитата Elven
а как удалить что-то с подобным хитрым символом в названии, если (гипотетически) возникнет ситуация, в которой пользоваться можно только именем? »

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


Время: 17:01.

Время: 17:01.
© OSzone.net 2001-