gpt4 book ai didi

powershell - 如何将 foreach 循环输出转储到 PowerShell 中的文件中?

转载 作者:行者123 更新时间:2023-12-04 16:27:16 24 4
gpt4 key购买 nike

我编写了以下脚本来读取 CSV 文件以执行自定义格式的输出。

脚本如下:

$Content = Import-Csv Alert.csv
foreach ($Data in $Content) {
$First = $Data.DisplayName
$Second = $Data.ComputerName
$Third = $Data.Description
$Four = $Data.Name
$Five = $Data.ModifiedBy
$Six = $Data.State
$Seven = $Data.Sev
$Eight = $Data.Id
$Nine = $Data.Time

Write-Host "START;"
Write-Host "my_object="`'$First`'`;
Write-Host "my_host="`'$Second`'`;
Write-Host "my_long_msg="`'$Third`'`;
Write-Host "my_tool_id="`'$Four`'`;
Write-Host "my_owner="`'$Five`'`;
Write-Host "my_parameter="`'$Four`'`;
Write-Host "my_parameter_value="`'$Six`'`;
Write-Host "my_tool_sev="`'$Seven`'`;
Write-Host "my_tool_key="`'$Eight`'`;
Write-Host "msg="`'$Four`'`;
Write-Host "END"
}

上面的脚本执行没有任何错误。

尝试过 Out-File和 PowerShell 中的重定向运算符将输出转储到文件中,但我没有找到任何解决方案。

最佳答案

Write-Host写入控制台。除非您在另一个进程中运行代码,否则无法重定向该输出。要么删除 Write-Host完全或替换为 Write-Output ,以便将消息写入 Success 输出流。

使用 foreach loop 还需要其他措施,因为该循环类型不支持流水线。要么在子表达式中运行它:

(foreach ($Data in $Content) { ... }) | Out-File ...

或将其输出分配给变量:
$output = foreach ($Data in $Content) { ... }
$output | Out-File ...

另一种选择是更换 foreachForEach-Object 循环循环,支持流水线:
$Content | ForEach-Object {
$First = $_.DisplayName
$Second = $_.ComputerName
...
} | Out-File ...

不要使用 Out-File在循环内部,因为重复打开文件会表现不佳。

关于powershell - 如何将 foreach 循环输出转储到 PowerShell 中的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com