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