1

Как мы знаем, Cmtlet может иметь много псевдонимов, таких как copy,cp,cpi всегда означают Copy-Item .Поэтому я хочу сделать таблицу псевдонимов, она будет выглядеть так:

...
...
...
Copy-Item     copy,cp,cpi
Clear-Host    cls,clear
Move-Item     mi,move,mv
...
...
...

Я могу получить всю информацию о псевдонимах (Get-Command -CommandType Alias).Definition|Get-Unique чтобы получить первый столбец ..Но я не знаю, как получить второй столбец.

2 ответа2

2

Если вы хотите, чтобы это отсортировано и без фигурных скобок ::

Get-Alias | Sort Definition | Group-Object Definition|
  ForEach-Object{"{0,-30} {1}" -f $_.Name,(($_.group.name) -join(', ')) }

Add-Content                    ac
Add-PSSnapIn                   asnp
Clear-Content                  clc
Clear-History                  clhy
Clear-Host                     clear, cls

Изменить вариант, который возвращает [pscustomobject] вместо отформатированной строки:

Get-Alias | Sort-Object Definition | Group-Object Definition | ForEach-Object{
    [PSCustomObject]@{
        CmdLet = $_.Name
        Aliases =(($_.group.name) -join(', '))
    }
}

CmdLet                         Aliases
------                         -------
Add-Content                    ac
Add-PSSnapIn                   asnp
Clear-Content                  clc
Clear-History                  clhy
Clear-Host                     clear, cls
1
PS C:\> Get-Alias | Group-Object definition|ft name,group

даст то, что я после

Name                           Group
----                           -----
ForEach-Object                 {%, foreach}
Where-Object                   {?, where}
Add-Content                    {ac}
Add-PSSnapIn                   {asnp}
Get-Content                    {cat, gc, type}
Set-Location                   {cd, chdir, sl}
ConvertFrom-String             {CFS}
Clear-Content                  {clc}
Clear-Host                     {clear, cls}
Clear-History                  {clhy}
Clear-Item                     {cli}
Clear-ItemProperty             {clp}
Clear-Variable                 {clv}
Connect-PSSession              {cnsn}
Compare-Object                 {compare, diff}
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .