将powershell脚本更改为不带省略号的输出(...)

Mic*_*mol 21 powershell powershell-2.0

我需要一些关于以下脚本输出的帮助,因此输出不会显示省略号(...).我试图插入"| Format-Table -Wrap -AutoSize"但我似乎没有把它弄好.

 clear-host Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue    
 $services = new-object system.collections.sortedlist
 $servers = (get-spfarm).servers  
 foreach ($server in $servers) {
     foreach($service in $server.serviceinstances)
     {
         if ($service.status = "Online")
         {
             $s = $service.typename
             if ($services.contains($s))
             {
                 $serverlist = $services[$s]
                 $servername = $server.name 
                 $services[$s]  = "$serverlist - $servername"
             }
             else
             {
                 $services[$s] = $server.name
             }
         }
     } } 
  $services
Run Code Online (Sandbox Code Playgroud)

输出:

Name                            Value                                                                           
----                           -----                                                                           
Access Database Service        SE5APP - SE5FE - SE7FE - FAQ3                                          
Application Discovery **and L...** SE5APP - SE5FE - SE7FE - FAQ3                                          
Application Registry Service   SE5APP - SE5FE - SE7FE - FAQ3                                          
Run Code Online (Sandbox Code Playgroud)

谢谢你的阅读.

Dav*_*ndo 20

无论是Format-List(fl)或Format-Table -auto(ft -auto)应该帮助这里.

$services | fl
Run Code Online (Sandbox Code Playgroud)

要么

$services | ft -auto
Run Code Online (Sandbox Code Playgroud)

  • 结束使用| Format-Table -Wrap -AutoSize,但是因为你知道我在哪里插入代码.谢谢. (2认同)

Try*_*ain 20

我遇到过这篇文章并希望添加一些信息,因为已接受的解决方案无法解决我的问题,我相信其他人可能会发现以下信息有用:

快速故事:使用Microsoft Online Services Modulewith 运行命令Powershell,大部分结果被连续检索为截断数据截止并丢失为省略号(...).

解决方法:正如格里格这篇文章中所解释的那样,我不可避免地得出结论$FormatEnumerationLimit=-1是问题的不稳定解决方案.使用的任何变体Format-Wide,Format-List,Format-Table,Format-Custom,-AutoSize,Out-String -Width,等需要的额外的考虑/代码大幅金额.在你想要的只是看到所有返回的数据的情况下,无论列,数组等如何,都$FormatEnumerationLimit=-1可以确保你获得所有内容而且不需要乱七八糟.

Greig的帖子中记载的其他信息包括:

PowerShell快速提示:使用PowerShell创建宽表,作者解释:

如果您具有包含项集合的特定属性,则如果该集合中的项目数超过分配给内置$ FormatEnumerationLimit变量的数量,则该属性仍可在此处生成的文件中显示省略号.

......并且"将结果传递给| Format-Table -Property *[将]显示所有列." 但是列中的内容可能仍会被截断("PowerShell默认情况下会截断表格输出"),即使使用| Format-Table -Property * -AutoSize也会受到屏幕缓冲区的限制("自动调整大小的表格仅限于屏幕缓冲区的宽度").在绝对$ FormatEnumerationLimit = -1之前提供的解决方案似乎| Format-Table -Property * -AutoSize| Out-String -Width 4096您需要的宽度或宽度一起使用.

使用格式命令更改输出视图提供了更多delailed单据上Format cmdlets:Format-Wide,Format-List,和Format-Table.

  • | 格式表-属性*-自动大小| Out-String -Width 4096为我工作。 (2认同)