Ответ 1
Один из способов найти запятую в предложении like
заключается в размещении всего выражения where
в круглых скобках. К сожалению, я также обнаружил, что это означает, что я не могу включить близкий парик в строку в одно и то же время (но открытый паз в порядке). Я экспериментировал с опцией /trace:on
, чтобы немного узнать, что происходило под обложками, и это помогло мне найти пару вещей, которые программа принимает:
Вот пример, который я получил для работы с запятой, но он, по-видимому, не может содержать близкий паз:
C:\> wmic /trace:on path Win32_Service where (Description like '%(%, %') get DisplayName
И вот пример, который я получил, чтобы работать как с открытыми, так и с круглыми скобками, но, по-видимому, он не может содержать запятую (очевидно, это очень похоже на ваш оригинальный пример):
C:\> wmic /trace:on path Win32_Service where "Description like '%(TAPI)%'" get DisplayName
Похоже, что синтаксический анализатор просто не достаточно сложный, чтобы обрабатывать эти случаи, но с отслеживанием вы можете увидеть используемые WMI Win32-функции, поэтому, возможно, вы можете написать свою собственную программу, которая напрямую использует функции. Я думаю, что IWbemServices::ExecQuery
способен на то, что вы хотите сделать.