이 명령을 문자열로 포맷 할 수 없습니다. 아래 코드는 $r
을 빈 문자열로 반환합니다. 왜?출력을 문자열로 변환 할 수 없습니다.
$f = gwmi -ComputerName PCname -Class Win32_Process -Filter "name='process.exe'"|
select {$_.WorkingSetSize/1MB}|fl
$r = $f.ToString()
이 명령을 문자열로 포맷 할 수 없습니다. 아래 코드는 $r
을 빈 문자열로 반환합니다. 왜?출력을 문자열로 변환 할 수 없습니다.
$f = gwmi -ComputerName PCname -Class Win32_Process -Filter "name='process.exe'"|
select {$_.WorkingSetSize/1MB}|fl
$r = $f.ToString()
Format-List에서 반환 한 개체 유형을 확인하면 System.Object의 배열임을 알 수 있습니다.
$f = gwmi -ComputerName PCname -Class Win32_Process -Filter "name='process.exe'"| `
select {$_.WorkingSetSize/1MB}|fl
$r | get-member
방금 작업 집합의 값을해야하는 경우
,이 시도 :gwmi -ComputerName PCname -Class Win32_Process -Filter "name='process.exe'" | `
select @{label='WorkingSetSize';expression={$_.WorkingSetSize/1MB}}| `
select -expandproperty WorkingSetSize
Format-List
문자열 배열이 아닌 하나의 문자열을 생산, 그래서 $f.ToString()
당신에게 System.Object[]
를 제공해야합니다. 당신이 Out-String
cmdlet을에 파이프를 할 수있는 하나의 문자열 배열을 변환하려면 : 위에서 언급 한 바와 같이
$f = gwmi -ComputerName PCname -Class Win32_Process -Filter "name='process.exe'" |
select {$_.WorkingSetSize/1MB} | fl
$g = $f | Out-String
그러나 적어도 System.Object[]
아닌 빈 문자열을 얻어야한다, 그래서 $f
의 가치를 다시 한 번 확인 .
내가 발견 한 것은 -Filter "name = 'process.exe'"가 나를 위해 작동하지 않는다는 것입니다. 즉, 내가 원하는 정확히 수행, 플로리다
$r = gwmi -ComputerName localhost -Class Win32_Process | where {$_.name -match "Process"} |
select @{label='WorkingSetSize';expression={$_.WorkingSetSize/1MB}} |
select -expandproperty WorkingSetSize
$r.ToString()
감사 | 그래서 나는이 내 결과, 나는 또한 PCname으로 localhost를 대체하고 제거
교체. – ko4evneg