Я пытался превратить вывод следующих двух команд в переменные, чтобы я мог использовать их в пакетном файле, однако у меня нет никаких Удача:Batch - FOR Loop to Turn Выход WMIC в переменную не работает
WMIC /namespace:\\root\SecurityCenter2 PATH AntiVirusProduct WHERE (displayName="Emsisoft Anti-Malware" or displayName="Emsisoft Internet Security") GET displayName /value
WMIC /namespace:\\root\SecurityCenter2 PATH AntiVirusProduct WHERE (displayName="Emsisoft Anti-Malware" or displayName="Emsisoft Internet Security") GET pathToSignedReportingExe /value
В принципе можно установить два разных продукта безопасности, и командный файл должен определить, какой из них. Так как папка потенциально может быть изменена во время установки, это самый безопасный способ определить, что похоже на вышеупомянутые две команды. К сожалению, я не могу получить вывод в переменные, чтобы использовать его.
Вот мой текущий тестовый скрипт:
@ECHO OFF
for /f "tokens=2 delims==" %%f in ('WMIC /namespace:\\\\root\\SecurityCenter2 PATH AntiVirusProduct WHERE ^(displayName^="Emsisoft Anti-Malware" or displayName^="Emsisoft Internet Security"^) GET DisplayName /value ^| find "="') do set "EmsiProductName=%%f"
ECHO %EmsiProductName%
for /f "tokens=2 delims==" %%f in ('WMIC /namespace:\\\\root\\SecurityCenter2 PATH AntiVirusProduct WHERE ^(displayName^="Emsisoft Anti-Malware" or displayName^="Emsisoft Internet Security"^) GET pathToSignedReportingExe /value ^| find "="') do set "EmsiProductPath=%%f"
ECHO %EmsiProductPath%
PAUSE
При запуске, вышеуказанные выходы две ошибки, которые говорят, «Описание = Сервер RPC недоступен.» Я попытался избежать котировок (и ""
, и \"
), и не ускользнул от них, но результат тот же.
У меня нет идей, поэтому, если у кого-то есть предложения, я бы очень признателен.
Но командные строки 'wmic' работают самостоятельно, не так ли? – aschipfl
@aschipfl да, делаю. – GT500
@ GT500 Попробуйте 'WHERE 'displayName как' Emsisoft %% '" '.Я думаю, что в ваших командах не может быть предполагаемого эффекта. Но вы можете заключить предложение 'where' в двойные кавычки и заключить имя продукта в одинарные кавычки. Это позволит вам избежать необходимости избегать чего-либо (даже если вы продолжаете использовать '=' вместо 'like'). – rojo