Неожиданный токен в заявлении IF - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь сохранить результат запроса в переменной и использовать его в условии IF.Тем не менее, он продолжает сбой с неожиданным токеном в «eq» и ​​«)».

Что я делаю не так?

Я проверил, что все кавычки закрыты и в ISE код выглядит чистым.Он жалуется на отсутствие ")" в утверждении If, но он есть.

$ServerName='10.x.x.x'
$Database = 'MyDB'
$Value = 'Y'

$QueryResult =   Invoke-Sqlcmd -ServerInstance $ServerName -Database $Database -Query  "Select value from QcTable where appid=5;"

if ($QueryResult -eq $Value) {
 <<do that>>>
}
else {
  <<do this>>
 }

Ожидается, что программа войдет внутрь, если блок.

Однако выдается ошибка: Неожиданный токен 'eq' в выражении или операторе Отсутствует закрытие ')' после выражения в операторе 'If'.

EDIT: удалено "=" для запроса.Все тот же результат.

1 Ответ

0 голосов
/ 19 декабря 2018

Я не уверен на 100%, потому что я не могу воссоздать исключение, которое вы получили, на моем компьютере, но я думаю, что проблема здесь:

-Query = "Select value from QcTable where appid=5;"
       ^
       |

Это может вызвать странное поведение,попытайтесь удалить это и проверьте, помогает ли это:)

Редактировать:

Поскольку это не помогает, есть другое предложение.

приведенный ниже код работает, как и ожидалось:

$ServerName='10.x.x.x'
$Database = 'MyDB'
$Value = 'Y'

$QueryResult = echo 'Y'

if ($QueryResult -eq $Value) {
   echo $Value
   echo $ServerName
}
else {
   echo $Database
}

Вывод:

Y
10.x.x.x

Попробуйте, если он работает так же, если он работает, то держу пари, что вы скопировали код изpdf и что-то не так с одним из символов, например:

$val = 1 ∕ 2

Выдает ошибку:

[PowerShell] Неожиданный токен '∕' в выражении или операторе.

Поскольку символ ∕ - это символ Unicode: U + 2215 (DIVISION_SLASH), который отличается от обычного слеша, то есть U + 002F (SLASH).Может быть, у вас то же самое с символом уравнения?Попробуйте написать этот код вручную и проверьте, помогает ли он.

Если он все равно не сработает, попробуйте обрезать код до тех пор, пока он не будет работать должным образом, чтобы вы могли локализоватьисточник проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...