programing

파워셸 출력 열폭

instargram 2023. 10. 29. 18:59
반응형

파워셸 출력 열폭

실행 파일이 있는 경우out.exe그리고.stdout파일로 리디렉션됩니다. 즉:

out.exe > $file

지금은 이렇게 하면 다음과 같은 결과만 나옵니다.

<-----------------------------> 
80 columns per line to the file

콘솔 컬럼 카운트에서 표준 출력을 더 넓게 할 수 있는 방법이 있습니까?이에요?out.exe그게 어떻게 된 일인가요?제가 사용하는 경우에는fxcopcmd.exe.

얼마 전에도 비슷한 문제가 있었습니다.고치기 위해 한 일은 다음과 같습니다.

# 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
}

호스트의 Raw에 500자의 새 너비를 설정하기만 하면 됩니다.UI 출력 버퍼(그러나 우리는 여러 환경에서 빌드를 실행하기 때문에 스크립트가 출력을 조금 더 크게 할 수 없다고 해서 실패하는 것을 원하지 않았기 때문에 코드는 방어적입니다.)

항상 Raw를 설정하는 환경에서 실행되는 경우UI (그리고 대부분의 경우), 코드는 크게 단순화될 수 있습니다.

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

둘다out-file그리고.out-stringcmdlets 가 있습니다.width매개 변수:

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

저는 이 시점에서 꽤 오래된 게시물이라는 것을 알고 있지만, 나중에 사용하기 위해 이를 우연히 발견한 사람들을 위해 2센트를 기부할 것이라고 생각했습니다.그 소리를 듣고 OP는 줄이 휘지 않도록 콘솔 창 크기를 늘리려고 합니다.이 문제를 해결하기 위해 제가 사용하는 일반적인 결심은 다음과 같습니다.

$Width = $host.UI.RawUI.MaxPhysicalWindowSize.Width
$host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.size($Width,2000)

이렇게 하면 출력 파일이 열려 래핑이 방지되고 -Stream(사용되는 경우)과의 충돌이 발생하지 않습니다.

편집: 이 명령은 PS의 이전 버전(7.1 이하)에만 실제로 필요합니다.최신 버전은 Out-String/File 후에 -Width 500만으로 통과할 수 있을 것입니다.

Windows PowerShell(윈도우 파워셸)을 말하는 경우 "속성 > 레이아웃"을 열면 버퍼 크기 + 창 크기가 늘어납니다.

enter image description here

파워셸 스크립트에서 첫 번째 줄은 캐리지를 반환하지 않도록 설정했습니다. 두 번째 줄은 수동으로 반환했습니다.

(루프 내)

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

Write-Host "`r"

그것은 내 라인을 감쌌지만 각각의 개인 기록 후에도 여전히 리턴을 하는 문제를 덮어버렸습니다.

언급URL : https://stackoverflow.com/questions/978777/powershell-output-column-width

반응형