1

我正在寻找以下挑战的解决方案:

我在 PowerShell 中运行以下命令。

Import-Module servermanager
Get-WindowsFeature | where {$_.Installed -eq "True"} | ft DisplayName, Installed > output.txt

现在我想在每一行的末尾添加一个字符。我怎样才能做到这一点?

我想我必须将内容添加到数组中,但我不知道如何完成代码。

最后,我必须将内容加载到 EventViewer 中。如果我直接发送,则事件描述的格式不正确。

4

3 回答 3

2

You could add another field to the records like this:

Get-WindowsFeature | ? { $_.Installed } |
    select DisplayName, Installed, @{n='Other',e={'c'}} | ft
于 2013-10-30T16:26:47.880 回答
0

听起来ft > output.txt你想要的不是 using ,而是:

foreach { echo ( $_.DisplayName + " " + $_.Installed + " extra_stuff" ) } > output.txt

但它并没有给你一个格式很好的表格。

于 2013-10-30T16:13:10.407 回答
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 对象的美妙之处!)。

于 2013-10-31T05:44:25.033 回答