Powershell에서 해시 테이블의 출력 형식을 지정하여 모든 값을 한 줄로 출력 할 수 있습니까?Powershell에서 해시 테이블의 출력 형식을 한 줄로 출력
$hashErr = @{"server1" = "192.168.17.21";
"server2" = "192.168.17.22";
"server3" = "192.168.17.23"}
아래로 로그에 기록됩니다 :
$hashErr.GetEnumerator() | Sort-Object Name | ForEach-Object {ForEach-Object {"{0}`t{1}" -f $_.Name,($_.Value -join ", ")} | Add-Content $log
가
(가) 아래 기록하는 원인이됩니다
나는 해시 테이블 아래의 값 $ hashErr이 로그에 :
Name Value
---- -----
server2 192.168.17.22
server1 192.168.17.21
server3 192.168.17.23
내 질문은 어떻게 할 수 있습니까? 이 해시 테이블을 포맷하여 출력이 아래처럼 모든 한 줄에 기록됩니까?
server2 192.168.17.22 | server1 192.168.17.21 | server3 192.168.17.23
이
는 해시 테이블의 모든 값을 통해 반복하고 배열에 넣어 수행 할 수 있지만, 확실히 더 직접적인 방법은 무엇입니까?
ForEach-Object {'또는 누락 된'}'이있는 것 같습니다. (코드를 변경하면 작동하지만 외부 ForEach-Object는 필요하지 않습니다.) – Duncan
@Duncan 그렇기 때문에 ** Foreach-Object ** 루프가 필요하지 않습니다. '$ hashErr.GetEnumerator() | Sort Name'만으로는 자신의 목록에 출력물을 생성합니다. 실제로 ** Foreach-Object ** 루프/형식 문자열을 사용하면 열 제목을 쓰지 않습니다. user_invalid, 그 표제는 어디에서 나온 것입니까? 미리 수동으로 로그에 추가 했습니까? –
제목이 수동으로 추가되지 않았습니다. 항목이 추가 된 순서대로 해시 테이블의 표준 출력으로 보입니다. 'PS M : \> $ hashErr ' –