缩进 "Format-Table | Out-File"

Indent "Format-Table | Out-File"

好的,我 运行 查询了多台服务器。我的数据正在输出到格式如下的文本文件:

System Info
     -Server1
          -Section1
               Some info for section1
               Some more info for section1
          -Section2
               Some info for section2
               Some more info for section2
          -Section3
ID          Type
1            Type1
2            Type2

每个新级别缩进 5 个空格,因此 -Server 行缩进 5 个空格,-Section 行缩进 10 个空格,一些信息行缩进 15 个空格...如果我的 table 行的格式为:

 $Table | Select-Object @{n='ID';e={$_.id}}, @{n='Type';e={$_.type}} | Format-Table | Out-File $Output -Append

有没有办法让输出从第15个位置开始?

首先将 Format-Table 的输出传递给 Out-String,以便您可以修改每一行。

$Table | Select-Object @{n='ID';e={$_.id}}, @{n='Type';e={$_.type}} | 
    Format-Table | 
    Out-String -Stream |                 # Output each line separately
    ForEach-Object { ' ' * 15 + $_ } |   # Indent by 15 spaces
    Out-File $Output -Append

Out-String参数-Stream用于将每一行分别传给ForEach-Object。默认情况下 Out-String 生成单个多行字符串,这将更难处理。