programing

파워셸의 열에서 개별 항목 선택

powerit 2023. 8. 26. 12:25
반응형

파워셸의 열에서 개별 항목 선택

PowerShell에서 다음 명령을 실행하면 많은 행이 반환됩니다.

PS C:\Users\benh> get-command

CommandType     Name                               ModuleName                         Definition
-----------     ----                               ----------                         ----------
Cmdlet          Get-Variable                       Microsoft.PowerShell.Utility       Get-Variable...
Cmdlet          Get-WebAppDomain                   WebAdministration                  Get-WebAppDomain...
Cmdlet          Get-WebApplication                 WebAdministration                  Get-WebApplication...
Cmdlet          Get-WebAppPoolState                WebAdministration                  Get-WebAppPoolState...
...
Cmdlet          Get-WinEvent                       Microsoft.PowerShell.Diagnostics   Get-WinEvent...
Cmdlet          Get-WmiObject                      Microsoft.PowerShell.Management    Get-WmiObject...
Cmdlet          Get-WSManCredSSP                   Microsoft.WSMan.Management         Get-WSManCredSSP...
Cmdlet          Get-WSManInstance                  Microsoft.WSMan.Management         Get-WSManInstance...
Cmdlet          Group-Object                       Microsoft.PowerShell.Utility       Group-Object...
Cmdlet          Import-Alias                       Microsoft.PowerShell.Utility       Import-Alias...
Cmdlet          Import-Clixml                      Microsoft.PowerShell.Utility       Import-Clixml...
Cmdlet          Import-Counter                     Microsoft.PowerShell.Diagnostics   Import-Counter...
Cmdlet          Import-Csv                         Microsoft.PowerShell.Utility       Import-Csv...
Cmdlet          Import-LocalizedData               Microsoft.PowerShell.Utility       Import-LocalizedData...
Cmdlet          Import-Module                      Microsoft.PowerShell.Core          ...

Get-Command에서 고유한 모듈 이름을 모두 반환하는 입니다.PowerShell로 이 작업을 수행하려면 어떻게 해야 합니까?

유사 C#의 경우:

PowerShell.Exec("Get-Command").Select(a=> a.ModuleName).Distinct();

이런 거 먹어봤어요?

get-command | select ModuleName | sort-object -Property ModuleName -Unique

더 짧은 시간:

get-command | select-object  moduleName -unique

아래 2개의 명령은 동일한 결과를 가져오지만 첫 번째 명령은 정렬되고 실행 시간이 다소 비쌉니다.

항목 수가 많은 경우(예: 가져오는 경우) 실행 시간이 더 고려됩니다.csv3만 행의 파일입니다.그러면 두 번째 옵션이 더 빨라지고, 고유한 값을 얻으면 필요에 따라 정렬합니다. 여기서 정렬은 훨씬 적은 수의 항목에서 수행되므로 성능이 향상됩니다.

1.

get-command | select ModuleName | sort-object -Property ModuleName -Unique

# This will give you the execution time
Measure-Command {get-command | select ModuleName | sort-object -Property ModuleName -Unique}

2.

get-command | select ModuleName -Unique

# This will give you the execution time
Measure-Command {get-command | select ModuleName -Unique}

다른 옵션:

Get-Command | Group-Object ModuleName -NoElement | Select-Object Name

언급URL : https://stackoverflow.com/questions/8439424/select-distinct-items-from-a-column-in-powershell

반응형