8ash8
10-12-2015, 15:00
Добрый день, в процессе адаптации ранее написанного скрипта столкнулся с проблемой: (не работает присвоение переменной в условном операторе).
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)
if not defined MA Set /a K=1
Echo %Key%
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)
if not defined JAU Set /a K=K+1
Echo %Key%
но при внесения скрипта в тело условного оператора присвоение "K=1" не работает и счетчик начинает считать на следующем шаге, с чем это может быть связанно?
Set /a Ins=1
if defined Ins (
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)) &
if not defined JAU Set /a K=1 & Echo %K% & (
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)) &
if not defined MA Set /a K=K+1 & Echo %K%
pause
но без IF счетчик нормально работает
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)
if not defined MA Set /a Key=Key+1
Echo %Key%
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)
if not defined JAU Set /a Key=Key+1
Echo %Key%
И второй вопрос, при корректной отработки For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A) записи в случае отсутствия условия выводится сообщение No Instance(s) Available. согласен, в этом случае замечание системы уместно, но как можно запретить вывод этого сообщения?
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)
if not defined MA Set /a K=1
Echo %Key%
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)
if not defined JAU Set /a K=K+1
Echo %Key%
но при внесения скрипта в тело условного оператора присвоение "K=1" не работает и счетчик начинает считать на следующем шаге, с чем это может быть связанно?
Set /a Ins=1
if defined Ins (
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)) &
if not defined JAU Set /a K=1 & Echo %K% & (
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)) &
if not defined MA Set /a K=K+1 & Echo %K%
pause
но без IF счетчик нормально работает
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A)
if not defined MA Set /a Key=Key+1
Echo %Key%
For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="Java Auto Updater" GET IdentifyingNumber /value^|Findstr "="') Do (Set JAU=%%A)
if not defined JAU Set /a Key=Key+1
Echo %Key%
И второй вопрос, при корректной отработки For /F "tokens=2* delims==" %%A In ('wmic PRODUCT where Name^="McAfee Agent" GET IdentifyingNumber /value^|Findstr "="') Do (Set MA=%%A) записи в случае отсутствия условия выводится сообщение No Instance(s) Available. согласен, в этом случае замечание системы уместно, но как можно запретить вывод этого сообщения?