Когда я возвращаю переменную из функции, она не показывает все это? - PullRequest
1 голос
/ 19 июня 2019

У меня есть функция, которая извлекает подсеть из листа Excel (например, 10.123.123.64/26).Затем я обрезаю символы «.64 / 26» с конца и возвращаю его.Когда я вспоминаю переменную вне функции, она показывает только первые два символа (10)?

function GetSubnet() {
    $FilePath = "C:\fwchange\IP.xlsx"
    $SheetName = "STORE SUBNET MASK"
    $Excel = New-Object -ComObject Excel.Application
    $WorkBook = $Excel.Workbooks.Open($FilePath)
    $WorkSheet = $WorkBook.Sheets.Item($SheetName)

    $Range = $Worksheet.Range("B1").EntireColumn
    $Search = $Range.Find($storeno)        
    Write-Host $search.Offset(0, 3).Text
    $Subnet = $search.Offset(0, 3).Text
    $Subnet1 = $Subnet.TrimEnd('64/26')

    $WorkBook.Save()
    $WorkBook.Close()
    $Excel.Quit()

    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
    Remove-Variable excel
    Stop-Process -Name "Excel" -Force

    return $Subnet1
}

Я бы хотела иметь возможность вызвать переменную $Subnet1 вне функции.

1 Ответ

0 голосов
/ 19 июня 2019

@MathiasR.Jessen в разделе комментариев:

вам необходимо назначить вывод функции для новой переменной в области вызова: $ Subnet1Result = GetSubnet

...