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

Обсуждение разнообразного программного обеспечения.
Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

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

Сообщение Admiralisimys » 12.09.2012 (Ср) 1:27

Здравствуйте.

Стал разбиратся с 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) всё работает как задумано.
А возможно ли сделать что б работало и с функцией?

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

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

Сообщение Admiralisimys » 12.09.2012 (Ср) 19:51

А фикс следующий
Код: Выделить всё
Function GetVersion($arg)
{
    $arg = "WindowsXP"
    $arg
}


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


Вернуться в Программное обеспечение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList