2009-06-11 39 views
25

Nếu tôi có một exe: out.exe và stdout của nó được chuyển hướng đến một tập tin ví dụ:Powershell đầu ra cột chiều rộng

out.exe > $file

Ngay bây giờ nếu tôi làm điều đó này chỉ kết quả đầu ra < --- --------------------------> 80 cột trên mỗi dòng cho tệp

là có cách để làm cho đầu ra tiêu chuẩn trở thành rộng hơn trong số cột điều khiển? là nó thats out.exe bằng cách nào đó rối tung với các cột .. trong trường hợp im của tôi sử dụng fxcompcmd.exe

+1

Tôi muốn cập nhật câu hỏi này. Nó chỉ ra rằng im cố gắng để đầu ra cửa sổ Visual Studio Output .. nhưng các cửa sổ nó gói ở 80 charachters .. là có bất kỳ cách nào để thiết lập nó để rộng hơn? – maxfridbe

Trả lời

32

tôi gặp phải một tương tự vấn đề một lúc trở lại. Đây là những gì tôi đã làm để sửa chữa nó:

# Update output buffer size to prevent clipping in Visual Studio output window. 
if($Host -and $Host.UI -and $Host.UI.RawUI) { 
    $rawUI = $Host.UI.RawUI 
    $oldSize = $rawUI.BufferSize 
    $typeName = $oldSize.GetType().FullName 
    $newSize = New-Object $typeName (500, $oldSize.Height) 
    $rawUI.BufferSize = $newSize 
} 

Nó chỉ đơn giản đặt một chiều rộng mới là 500 ký tự trên đệm đầu ra RawUI của máy chủ (mặc dù, kể từ khi chúng tôi chạy xây dựng của chúng tôi trong một số môi trường, và chúng tôi không muốn kịch bản để thất bại chỉ vì nó không thể làm cho đầu ra lớn hơn một chút, mã này khá phòng thủ).

Nếu bạn chạy trong một môi trường luôn đặt RawUI (và hầu hết làm), các mã có thể được đơn giản hóa rất nhiều:

$Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 25) 
+1

Cảm ơn bạn .. Bạn thưa ông là người đàn ông! – maxfridbe

+0

Đừng làm điều này khi gọi PowerShell từ bước xây dựng Visual Studio. Có vẻ như đã treo PowerShell.exe. – yzorg

+1

Hãy cẩn thận khi đặt kích thước khi đặt một trong các thứ nguyên thành giá trị nhỏ hơn sẽ khiến tập lệnh bork. Bài đăng trên blog cũ hơn về chủ đề này đã khiến tôi bị trầy xước - http://weblogs.asp.net/soever/archive/2008/12/09/powershell-output-capturing-and-text-wrapping-strange-quirks- resolve.aspx # 7718576 (FWIW bình luận của tôi là gần phía dưới) –

9

Cả out-fileout-string cmdlet có một tham số width:

out.exe | out-file -width 132 -filePath $file 
+3

Nhưng điều này sẽ không giúp ích gì nếu exe quyết định chỉ xuất 80 ký tự. – JasonMArcher

0

Trong kịch bản PowerShell tôi thiết lập các dòng đầu tiên để không làm vận chuyển trả về sự dòng thứ hai tôi đã trả lại bằng tay.

(trong vòng một vòng lặp)

Write-Host -nonewline "$var1;$var2" 

Write-Host "`r" 

Đó gạt vấn đề này với việc dòng của tôi được bao bọc nhưng vẫn làm trở lại sau mỗi bản ghi cá nhân.

+0

Tôi tin rằng vấn đề ở bàn tay là để tăng chiều rộng của cửa sổ đầu ra trong VS .... điều này không có vẻ như nó trả lời câu hỏi đúng cách. – rayryeng

0

Nếu bạn đang nói về Windows PowerShell - chỉ cần mở "properties> Layout" kích thước tăng đệm + cửa sổ kích thước

enter image description here

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