如何处理Powershell对象的结果来调用函数



下面是我的代码:

function setParameterb () {
$Name = $args[0]  
"Arg1: $Name"

}

Write-Output "### Starte AlertlogRotate ###" 
$folders = @('d:', 'e:', 'f:', 'g:', 'h:', 'i:', 'j:', 'k:', 'l:')
foreach ($i in $folders) {
$filenames = Get-ChildItem -Path $i*log -ErrorAction SilentlyContinue -Recurse -Filter alert_*.log | Select-Object FullName 

}

setParametersb函数现在只是用于测试,应该只打印结果。之后,我将使用它来压缩太大的日志文件。

我需要将这个powershell对象的结果转换为字符串,以便为每行调用函数。对象看起来像这样:

FullName                                                             
--------                                                             
D:AREAlogdiagrdbmsareaareatracealert_area.log        
D:CONSlogdiagrdbmsconsconstracealert_cons.log    
D:DEV01logdiagrdbmsdev01dev01tracealert_dev01.log            
G:TEST01LOGdiagrdbmstest01test01tracealert_test01.log        
G:TEST02logdiagrdbmstest02test02tracealert_test02.log

我知道,我必须裁剪标题"FullName",行"--------"还有一些空行,但现在这不是我的问题了。我的问题是将对象$filename转移到一个数组中,以便能够从输出的每一行调用函数setParameterb。

尝试了很多其他的东西,但最后这解决了我的问题:

$filenames |ForEach-Object { setParameterb $_.FullName } 

试试

function setParameterb () {
param (
[Parameter(Mandatory=$true)]
$names,
)

foreach($name in $names){
"Arg1: $name"
}


}

相关内容

  • 没有找到相关文章