При удаленном получении списка установленных программ не найдено ни одного экземпляра

Поэтому каждый раз, когда я запускаю свой командный файл, я плохо набираю имя компьютера, затем пишу, какую программу я ищу. Я добавил часть "name like '(word)%'", чтобы не было точного соответствия для поиска программы. Вот мой код:

@echo off
set /p name="Enter PC Name: "
set /p prgm="Type Part of the Program Name: "
wmic /node:%name% product where "name like '%prgm%%'" get name,version
set /p fprgm="Enter Full Program Name: "
wmic /node:%name% product where name="%fprgm%" call uninstall
pause

Я не уверен, что происходит, потому что, если я захожу в WMIC вручную и ищу, используя /node:(pc-name) product where "name like '(word)%'" get name,version оно работает.

1 ответ

Решение

Вам нужно избегать некоторых символов с особым значением, чтобы трактоваться буквально.

Лечить знак процента (%) как обычный символ в пакетном скрипте, удвойте его (%%) как в следующем примере:

==>type 29951224.bat
@ECHO ON >NUL
@SETLOCAL

set "name=localhost"
set "prgm=visual F"
wmic /node:%name% product where "name like '%prgm%%%'" get name,version

==>29951224.bat

==>set "name=localhost"
==>set "prgm=visual F"
==>wmic /node:localhost product where "name like 'visual F%'" get name,version
Name               Version
Visual F# 3.1 SDK  12.0.21005
Visual F# 3.1 VS   12.0.21005

==>
Другие вопросы по тегам