programing

값을 잘라내지 않고 Format-Table을 사용하려면 어떻게 해야 합니까?

muds 2023. 9. 13. 23:59
반응형

값을 잘라내지 않고 Format-Table을 사용하려면 어떻게 해야 합니까?

저는 현재 서버를 핑하고 각 서버에서 실행 중인 서비스의 상태를 확인하는 스크립트를 가지고 있습니다.

Out-File로 출력을 저장하지만 PowerShell은 긴 문자열 뒤에 타원 또는 "..."을 배치합니다.나는 이것을 원하지 않습니다.예를 들어,

MachineName  ServiceName             Status StartType
-----------  -----------             ------ ---------
SrvGtw01     Test.MyService....       Running  

다음과 같이 전체 이름을 표시합니다.

MachineName  ServiceName              Status StartType
-----------  -----------              ------ ---------
SrvGtw01     Test.MyServiceName.Here  Stopped  Disabled

제가 읽어봤는데 당신이 그 일을 할 수 있는 것은$FormatEnumerationLimit선호 변수:-1해봤는데 안 되네요.대본에 어떻게 넣어야 할지 모르겠어요.

선호 변수수집 값 속성의 몇 개의 요소를 표시할지 결정하는 것이 목적이므로 여기에 적용되지 않습니다(예:$FormatEnumerationLimit = 2; [pscustomobject] @{ prop = 1, 2, 3 }2개 요소 인쇄(최대).prop의 가치와 더 많은 것의 존재에 대한 암시....; 예를 들면,{1, 2...}).

대신 다음을 수행해야 합니다.

  • (a) 개별 열이 표시되는 값을 자르지 않도록 합니다.

    • 첫번째로 파이프를 연결합니다.
  • 그리고 (b) 전체 출력 폭이 모든 열에 맞도록 합니다.

    • 값이 충분히파이프에 연결(사용 안 함)[int]::MaxValue, 그러나, 표 형태의 출력의 모든 라인이 바로[1] 그 폭으로 패딩되기 때문입니다.)

    • 주의 사항: 명시적으로 설정하지 않은 경우 - 그냥 사용할 경우 발생합니다.>, 예를 들어, 현재 콘솔 창의 너비가 사용됩니다. - 어떤 경우든 말입니다.

예를 들어 다음과 같습니다.

# Assumes that the objects in $results only contain the properties
# of interest (MachineName, ServiceName, Status, StartType); you 
# can also pass an explicit list of output properties to Format-Table, however.
$results | Format-Table -AutoSize | Out-File -Width 512 C:\log.txt -Append

참고: 콘솔에서 출력을 미리 보려면(라인 래핑이 포함될 수 있음) 다음을 사용합니다.
Out-String -Width 512대신.


[1] PowerShell Core에서는 이 바람직하지 않은 마지막 열 패딩이 v6.1.0 이상으로 제거되었습니다.

언급URL : https://stackoverflow.com/questions/49122925/how-do-i-use-format-table-without-truncation-of-values

반응형