Страница 1 из 1

PowerShell: Вернувшую функцией строку проверить на вхождение

СообщениеДобавлено: 12.09.2012 (Ср) 1:27
Admiralisimys
Здравствуйте.

Стал разбиратся с PowerShell и натолкнулся на следующее
Код: Выделить всё

Function GetVersion($arg)
{
    $winVer
    $winVer = "WindowsXP"
    $winVer
}

[string[]]$Files = "\WindowsXP\x86\"
$Files +=  "\WindowsXP\x64\"
[string]$Ver = GetVersion("")#"WindowsXP"
Write-Output($Ver)

ForEach ($str in $Files)
{
    If($str.Contains($Ver))
    {
        Write-Output($str)
    }
}

Если раскоментировать (убрать #) строку ("WindowsXP") и поставить её вместо вызова функции (GetVersion) всё работает как задумано.
А возможно ли сделать что б работало и с функцией?

Re: PowerShell: Вернувшую функцией строку проверить на вхожд

СообщениеДобавлено: 12.09.2012 (Ср) 19:51
Admiralisimys
А фикс следующий
Код: Выделить всё
Function GetVersion($arg)
{
    $arg = "WindowsXP"
    $arg
}


Такое впечатление, что строковый стек опустошается после возврата из функции (как при этом Write-Output($Ver) правильно отрабатывает вопрос) по этому нужно что б строковая переменная была из вне.
Не хорошо это...