从PowerShell中的列中select不同的项目
如果我在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返回的所有不同的ModuleNames。 我怎样才能用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
另外一个select:
Get-Command | Group-Object ModuleName -NoElement | Select-Object Name
下面的两个命令会带来相同的结果,但是第一个命令会被sorting并且执行时间有点贵。
如果您有大量项目,则会考虑执行时间。例如,如果要导入30,000行的csv
文件。 然后第二个选项会更快,一旦你得到独特的价值sorting他们,如果你需要,因为在这里sorting将less得多的项目,从而更好的performance。
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}