我正在寻找以下挑战的解决方案:
我在PowerShell中运行以下命令。
Import-Module servermanager
Get-WindowsFeature | where {$_.Installed -eq "True"} | ft DisplayName, Installed > output.txt
现在我想在每行的末尾添加一个字符。我怎样才能做到这一点?
我想我必须将内容添加到数组中,但我不知道如何完成代码。
最后,我必须将内容加载到EventViewer中。如果我直接发送,事件描述格式不正确。
答案 0 :(得分:2)
您可以在记录中添加另一个字段,如下所示:
Get-WindowsFeature | ? { $_.Installed } |
select DisplayName, Installed, @{n='Other',e={'c'}} | ft
答案 1 :(得分:0)
听起来好像不是使用ft > output.txt
,而是想要:
foreach { echo ( $_.DisplayName + " " + $_.Installed + " extra_stuff" ) } > output.txt
虽然它没有给你一个格式很好的表。
答案 2 :(得分:0)
这有点超出了您直接询问的范围,但我建议跳过“写入文本文件”阶段并直接传递到目的地。
Import-Module servermanager
$installedFeatures = @() # Creates a blank array for the features
$output = @() # Creates a blank array for formatted results
$yourChar # The character/ string you want to add at the end of each row
$installedFeatures = Get-WindowsFeature | Where-Object {$_.Installed -eq "True"}
foreach($feature in $installedFeatures)
{
$output += "$($feature.displayName) $($feature.installed) $yourChar"
}
迭代完所有Windows功能后,您的$output
变量将包含displayName installed $yourChar
格式的字符串数组。然后,您可以写入磁盘,或将对象发送到其他位置(这是PowerShell对象的优点!)。