programing

PowerShell에서 개체 수를 계산하는 방법은 무엇입니까?

telebox 2023. 5. 17. 22:45
반응형

PowerShell에서 개체 수를 계산하는 방법은 무엇입니까?

PowerShell 사용자 가이드에서 읽은 바와 같이 PowerShell의 핵심 개념 중 하나는 명령이 텍스트 대신 개체를 수락하고 반환한다는 것입니다.예를 들어, 실행은get-alias여러 개를 반환합니다.System.Management.Automation.AliasInfo객체:

PSZ:\> get-alias
명령 유형 이름 정의-----------     ----                                             ----------각 개체에 대한 별칭 %별칭?위치-객체Aliasac 주소-내용별칭 asnp Add-PS 스냅인별칭 고양이 가져오기-내용별칭 cd 세트-위치별칭 chdir 집합-위치...

, 이 물체들의 개수를 어떻게 알 수 있을까요?

다음과 같이 카운트됩니다.

get-alias | measure

다음과 같이 결과를 사용하여 작업할 수 있습니다.

$m = get-alias | measure
$m.Count

또한 일부 변수에 별칭을 지정하려면 Tee-Object를 사용할 수 있습니다.

$m = get-alias | tee -Variable aliases | measure
$m.Count
$aliases

Measure-Object cmdlet에 대한 자세한 내용은 Technet에 있습니다.

시간 측정용 Measure-Command cmdlet과 혼동하지 마십시오.(다시 테크넷에서)

@jumbo의 대답만 짧게 하면 :-) 당신은 그것을 훨씬 더 간결하게 할 수 있습니다.이것은 단지 그것을 반환합니다.Count선행 하위 계산에 의해 반환된 배열의 속성:

@(Get-Alias).Count

몇 가지 주의할 점은 다음과 같습니다.

  1. 다음 대신 임의로 복잡한 식을 넣을 수 있습니다.Get-Alias예:

    @(Get-Process | ? { $_.ProcessName -eq "svchost" }).Count
    
  2. 강력한 솔루션을 위해서는 초기 앳사인(@)이 필요합니다.답이 2개 이상이면 @가 있든 없든 동등한 답을 얻을 수 있지만, 답이 0이거나 1일 때는 @ 기호가 없는 한 출력을 얻을 수 없습니다! (힘을 줍니다.)Count속성은 출력을 배열로 강제 설정하여 존재합니다.)

2012.01.30 업데이트

위의 내용은 PowerShell V2에 해당됩니다.PowerShell V3의 새로운 기능 중 하나는 다음과 같은 기능이 있다는 것입니다.Count속성은 싱글톤의 경우에도 마찬가지이므로 앳 부호는 이 시나리오에서 중요하지 않습니다.

괄호와 'count'만 사용하면 됩니다.이는 Powershell v3에 적용됩니다.

(get-alias).count

@($output).Count항상 올바른 결과가 나오는 것은 아닙니다.사용했습니다.($output | Measure).Count방법.

VMware Get-VmQuestion cmdlet에서 다음을 찾았습니다.

$output = Get-VmQuestion -VM vm1
@($output).Count

그것이 준 답은 하나인 반면,

$output

. (은 0입니다.)Measure방법)을 선택합니다.

이것은 0과 1의 경우에만 해당되는 것처럼 보였습니다.제한적인 테스트를 통해 1을 초과하는 항목은 모두 정확했습니다.

제 교환에서 당신이 제시한 cmd-let이 작동하지 않았고, 답변이 null이었기 때문에, 저는 약간의 수정을 해야 했고, 저를 위해 잘 작동했습니다.

@(get-transportservice | get-messagetrackinglog -Resultsize unlimited -Start "MM/DD/AAAA HH:MM" -End "MM/DD/AAAA HH:MM" -recipients "user@domain.com" | where {$_.Event
ID -eq "DELIVER"}).count
Get-Alias|ForEach-Object {$myCount++};$myCount

158

총 개체 수를 가져오려면 이 옵션을 사용하십시오. (Get-Alias)세어보세요

언급URL : https://stackoverflow.com/questions/11526285/how-to-count-objects-in-powershell

반응형