2012-12-06 34 views
9

Tôi cần một số trợ giúp với đầu ra của tập lệnh sau để đầu ra không hiển thị với dấu ba chấm (...). Tôi đã cố chèn "Định dạng-Bảng -Wrap -AutoSize" Nhưng tôi dường như không làm đúng.Thay đổi tập lệnh PowerShell thành đầu ra mà không có dấu ba chấm (...)

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 

đầu ra:

Name       Value                   
----       -----                   
Access Database Service  SE5APP - SE5FE - SE7FE - FAQ3           
Application Discovery **and L...** SE5APP - SE5FE - SE7FE - FAQ3           
Application Registry Service SE5APP - SE5FE - SE7FE - FAQ3           

Cảm ơn bạn đã đọc.

+0

Bạn có thể hiển thị ví dụ về đầu ra bằng dấu ba chấm không? – David

Trả lời

11

Hoặc là Format-List (fl) hoặc Format-Table -auto (ft -auto) sẽ trợ giúp tại đây.

$services | fl 

HOẶC

$services | ft -auto 
+1

Đã kết thúc bằng cách sử dụng | Định dạng-Bảng -Wrap -AutoSize, nhưng đó là vì bạn mà tôi hiểu nơi để thực sự chèn mã. Cảm ơn. – MicroSumol

10

Tôi đã xem qua bài này và muốn thêm một số thông tin, như là giải pháp chấp nhận không giải quyết được vấn đề của tôi và tôi chắc chắn rằng người khác có thể tìm thấy những thông tin hữu ích sau đây:

Câu chuyện nhanh: Chạy lệnh sử dụng Microsoft Online Services Module với Powershell, phần lớn các kết quả liên tục được lấy ra như cắt ngắn với dữ liệu cắt và mất tích như dấu ba chấm (. ..).

Sửa lỗi: Như được giải thích trong this post by Greig, tôi chắc chắn đã đi đến kết luận $FormatEnumerationLimit=-1 là giải pháp không chính thức cho vấn đề. Sử dụng bất kỳ biến thể nào của Format-Wide, Format-List, Format-Table, Format-Custom, -AutoSize, Out-String -Width, v.v. yêu cầu số tiền/mã bổ sung đáng kể. Trong trường hợp tất cả những gì bạn muốn là xem tất cả dữ liệu được trả lại, bất kể cột, mảng, v.v., $FormatEnumerationLimit=-1 đảm bảo bạn sẽ nhận được mọi thứ và bạn không cần phải gây rối.

thông tin bổ sung, như ghi trong bài Greig bao gồm:

PowerShell Quick Tip: Creating wide tables with PowerShell, nơi tác giả giải thích:

Nếu bạn có một tài sản cụ thể có chứa một bộ sưu tập các mặt hàng, tài sản đó có thể vẫn hiển thị dấu ba chấm trong tệp được tạo ở đây nếu số lượng các mục trong bộ sưu tập đó vượt quá số được gán cho được xây dựng trong $ FormatEnumerationLimit biến.

... và rằng "chuyển kết quả đến | Format-Table -Property * [sẽ] hiển thị tất cả các cột". Nhưng nội dung từ các cột vẫn có thể bị cắt bớt ("PowerShell cắt bớt đầu ra bảng theo mặc định") và thậm chí sử dụng | Format-Table -Property * -AutoSize sẽ bị giới hạn bởi bộ đệm màn hình của bạn ("Bảng có kích thước tự động được giới hạn ở độ rộng của bộ đệm màn hình") . Giải pháp được cung cấp, trước khi tuyệt đối $ FormatEnumerationLimit = -1, dường như đang sử dụng | Format-Table -Property * -AutoSize kết hợp với | Out-String -Width 4096 hoặc bất kỳ chiều rộng nào bạn yêu cầu.

Using Format Commands to Change Output View cung cấp một số tài liệu delailed thêm về các Format cmdlets: Format-Wide, Format-List, và Format-Table.

+1

| Định dạng-Bảng -Property * -AutoSize | Out-String -Width 4096 làm việc cho tôi. – GuruKay

+0

@TryTryAgain _ "Sử dụng lệnh định dạng để thay đổi kết quả đầu ra" _ liên kết trong bài viết của bạn bị hỏng. [Đây là một liên kết hoạt động] (https://docs.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/using-format-commands-to-change-output-view). –

+0

@MassDotNet cảm ơn vì đã chỉ ra điều đó. Cũ, có vẻ như là không còn có sẵn vì vậy tôi đã thay đổi liên kết để trỏ đến cách trở lại máy. – TryTryAgain

Các vấn đề liên quan