【发布时间】:2021-08-19 08:16:58
【问题描述】:
这是我的代码:
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:\AREA\log\diag\rdbms\area\area\trace\alert_area.log
D:\CONS\log\diag\rdbms\cons\cons\trace\alert_cons.log
D:\DEV01\log\diag\rdbms\dev01\dev01\trace\alert_dev01.log
G:\TEST01\LOG\diag\rdbms\test01\test01\trace\alert_test01.log
G:\TEST02\log\diag\rdbms\test02\test02\trace\alert_test02.log
我知道,我必须裁剪标题“FullName”、行“--------”和一些空行,但这不是我现在的问题。 我的问题是将对象 $filenames 转移到一个数组中,以便能够使用输出中的每一行调用函数 setParameterb。
【问题讨论】:
-
$filenames |ForEach-Object { setParameterb $_.FullName } -
嗨,马蒂亚斯,非常感谢。这就是我一直在寻找的 :-) 尝试了很多东西,包括转换为字符串和数组,但这个有效!
标签: function powershell object