Алиасы Powershell это сокращение дающие возможность выполнять команды, используя другие, не настоящие команды, являющиеся как-бы ссылками на оригинальные.
Наткнулся на одного блогера, который использовал интересную команду. Странно почему я раньше их не замечал.

Первый Алиас
В скриптах часто приходится использовать“Where-Object”.
Например:
Get-ChildItem -Path D:\ -Recurse | Where-Object { $_.PSIsContainer }
Вместо “Where-Object” можно использовать алиас-powershell “?” (знак вопроса). Вышеупомянутый скрипт в этом случае приобретает следующий вид:
Get-ChildItem -Path D:\ -Recurse | ? { $_.PSIsContainer }
Обе эти записи абсолютно идентичны.
Второй Алиас
Второй алиас-powershell – это “%” знак процента. Он используется вместо “ForEach-Object” и “foreach”. Следующие три строки так же будут абсолютно идентичны.
-
Get-ChildItem -Path d:\ -Recurse | ? { $_.PSIsContainer } | ForEach-Object {$_}
-
Get-ChildItem -Path d:\ -Recurse | ? { $_.PSIsContainer } | foreach {$_}
-
Get-ChildItem -Path d:\ -Recurse | ? { $_.PSIsContainer } | % {$_}
Список алиасов можно получить командлетом Get-Alias.
Еще один Алиас
А еще вместо логического оператора -not можно использовать оператор алиас-powershell “!” (восклицательный знак). В этом случае две нижеследующие записи будут идентичны.
-
Get-ChildItem -Path D:\ -Recurse | Where-Object { -not $_.PSIsContainer }
-
Get-ChildItem -Path D:\ -Recurse | Where-Object { ! $_.PSIsContainer }
P.P.S
Немного поработав с этими алиас для powershell пришел к выводу, что если скрипт укладывается в одну строчку, то восклицательный знак и знак вопроса придают строке компактность, соответственно выглядит и воспринимается код лучше.
Но если скрипт большой, в много строк, то Where-Object всё же читается лучше, чем непривычные знаки. Тем более, что в разных языках программирования подобные знаки имеют разные значения и порой приходится напрягаться, чтобы вспомнить их значение в данном конкретном случае.
Рекомендую к прочтению TCP Port Ping с помощью PowerShell