首页 > 解决方案 > Powershell 输出被 powershell 切断。输出中的点

问题描述

我面临一个问题,我收到的输出被 PS 中的“...”点缩短。我尝试将 Out-String 与 -Width 选项一起使用。还有格式表等。这些不起作用,因为 $readable_output 不是字符串,而是 system.object - 至少我认为这就是为什么它没有给我完整的输出?

该输出由 $command 提供,其中包含来自我们软件 (Commvault) 的特定命令,它提供了许多不需要的行和空行,因此我不得不使用该输出来只保留对我来说必要的行。它在播放文本输出之前的示例:

QScript[GetClientGroup] CS[DGBDFTLV000] DB[CommServ]    Qscript Output:      Client Group  ------------  UX_LINUX_SYST  GetClientGroupcompleted at Sep 15 2020  1:35PM with parameters client   [z85722] or client group []. ErrorCod
e (0).   Qscript Execution Succeeded!

例如,这个脚本的当前输出是:

VM     ClientGroup                      
--     -----------    
z55555 UX_LINUX_PROD
d33222 UX_LINUX_SYST...  # here is the problem, this VM has more than 1 group and it fails to output it.
g71635 UX_DB2_GOLD  

脚本本身:

# VM's list
$vms = @("z55555",
"d33222",
"g71635")

# Return VM name and it's client group
function Get-ClientGroup{
$result = @()
    foreach ($vm in $vms){
        $object = New-Object -TypeName PSObject
        $object | Add-Member -Name 'VM' -MemberType Noteproperty -Value "$vm"
        $command = qoperation execscript -sn GetClientGroup.sql -si c=$vm 
        $readable_output = $command | Select-String -Pattern "PROD","SYST", "TEST", "GOLD", "CASSANDRA", "50%", "MS", "DB2", "SQL", "Backup" | Select-Object -Skip 1 | Out-String | ForEach-Object { $_.Trim() }
        $object | Add-Member -Name 'ClientGroup' -MemberType Noteproperty -Value "$readable_output"
        $result += $object
    }
return $result
}
$result = Get-ClientGroup
$result | Out-File -FilePath D:\Scripts\CurrentGroups.txt

标签: powershell

解决方案


尝试将其通过管道传输到 select-object 并展开属性客户端组:

$result | select-object -ExpandProperty ClientGroup

推荐阅读