Ошибка при использовании оператора if с условным оператором -AND и двумя переменными [дубликаты]

В моем текущем скрипте я определил 2 переменные в верхней части скрипта:

$errorcode = 0
$time_errorcode = 0

Остальная часть скрипта состоит из 2 циклов foreach для каждой из этих переменных. По сути, если цикл завершается успешно, то переменная остается равной 0, а если цикл завершается неудачно, переменная изменяется на 1. Сейчас я пытаюсь выяснить, как я могу правильно «выйти» из сценария с кодом выхода, который мне нужен, в зависимости от того, или не эти forloops удались или потерпели неудачу. Я делаю это следующим образом:

if ($errorcode = 1 -and time_errorcode = 1){exit 0"}
if ($errorcode = 1 -and $time_errorcode = 0){exit 1"}
if ($errorcode = 0 -and $time_errorcode = 1){exit 2"}

Проблема, с которой я сталкиваюсь, заключается в том, что PowerShell сообщает мне, что этот фрагмент: if ($errorcode = 0 -and $time_errorcode = 1) недействителен. Ошибка, которую я получаю:

Входными данными для оператора присваивания должен быть объект, способный принимать присваивания, например переменная или свойство.

Думаю, я не знаю, как правильно сравнить эти две переменные вместе, чтобы получить желаемый код выхода. Какова наилучшая процедура для этого?


person RaptorPete    schedule 12.10.2018    source источник
comment
Используйте -eq вместо =. if (($errorcode -eq 1) -and ($time_errorcode -eq 1))   -  person lit    schedule 12.10.2018
comment
Как сказал @lit, используйте оператор -eq вместо =. В PowerShell знак равенства является оператором присваивания, а -eq используется строго для равенства. Вы переназначаете свои переменные этим значениям в своем заявлении.   -  person Peter Kay    schedule 12.10.2018