2016-09-12 4 views
0
function func { 
    echo ALERT 
    return $false 
} 

if (func) { 
    Write-Output "TRUE" 
} 

Этот код записывает TRUE, несмотря на то, что функция возвращает false. Однако, когда я пишу [void]echo ALERT Powershell throws errorЗначение возвращаемой функции Powershell

Неожиданный токен «эхо» в выражении или утверждении.

Как исправить этот код?

ответ

1

echo ALERT в вашем коде возвращает строку (echo является псевдонимом для Write-Output)

Если вы делаете, если проверка на шнурке, PowerShell проверяет, если строка не является нулевым или пустым.

Поэтому он всегда возвращает true.

Если вы хотите предупредить пользователя о «ALERT», используйте Write-Host.

function func { 
    Write-Host ALERT 
    return $false 
} 
+0

Почему я не могу просто написать [void] echo (это вызывает ошибку)? Мне пришлось обернуть эхо в {} i. е. [void] {echo ALERT}, чтобы выполнить проверку синтаксиса прохождения кода. – cloud1

Смежные вопросы