Powershell函数不与返回一起工作

Powershell函数不与返回一起工作,powershell,Powershell,如果我运行这段代码,我不会将任何内容写入屏幕,并且$CHPEL为空。 但是如果我在函数中使变量为全局变量,并且只调用函数,那么代码就可以工作。我怎样才能使它与Return一起工作,这样我就不必有一个全局变量了 function Get-CHPEL-Report { Clear-Host Write-Output "Finding Newest CHPEL Report" $PathC

如果我运行这段代码,我不会将任何内容写入屏幕,并且$CHPEL为空。 但是如果我在函数中使变量为全局变量,并且只调用函数,那么代码就可以工作。我怎样才能使它与Return一起工作,这样我就不必有一个全局变量了

   function Get-CHPEL-Report
        {
            Clear-Host
            Write-Output "Finding Newest CHPEL Report"
            $PathCHPEL = Get-ChildItem -Path S:\CHPEL | Sort-Object LastWriteTime | Select-Object -last 1 | Select-Object FullName | ForEach-Object{$_.FullName}
            Write-Output "Loading - $PathCHPEL"
            #$global:CHPEL = Get-Content -Path $PathCHPEL | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`t"
            $CHPEL = Get-Content -Path $PathCHPEL | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`t"
            return $CHPEL
            Clear-Host
        }
        
    $CHPEL = Get-CHPEL-Report
试试这个:

   function Get-CHPEL-Report
        {
            Clear-Host
            Write-Output "Finding Newest CHPEL Report"
            $PathCHPEL = Get-ChildItem -Path S:\CHPEL | Sort-Object LastWriteTime | Select-Object -last 1 | Select-Object FullName | ForEach-Object{$_.FullName}
            Write-Output "Loading - $PathCHPEL"
            $global:CHPEL = Get-Content -Path $PathCHPEL | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`t"
            Clear-Host
        }

Get-CHPEL-Report

我将“Write Output”替换为“Write Host”,因为它包含在$CHPEL变量中。您还可以删除最后一个“清除主机”,它位于“返回”之后,将永远不会执行。

谢谢!这很有效。
function Get-CHPEL-Report {
    Clear-Host
    Write-Host "Finding Newest CHPEL Report"
    $PathCHPEL = Get-ChildItem -Path D:\Temp\stackoverflw | Sort-Object LastWriteTime | Select-Object -last 1 | Select-Object FullName | ForEach-Object{$_.FullName}
    Write-Host "Loading - $PathCHPEL"
    $CHPEL = Get-Content -Path $PathCHPEL | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter "`t"
    return $CHPEL
    #Clear-Host #Never executed
}
$CHPEL = Get-CHPEL-Report
Write-Host $CHPEL