Это …
$a = Get-Item((gcm pip.exe).Path); Split-Path -Path $a -Parent | ii
.. буквально две независимые команды. Наличие их на одной линии действительно делает это однострочным, что, похоже, является вашим вариантом использования.
Вы можете посмотреть, что конкретно вы можете использовать, используя командлет Get-Member.
Get-Item((gcm notepad.exe).Path) | Get-Member
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
...
PSChildName NoteProperty string PSChildName=notepad.exe
PSDrive NoteProperty PSDriveInfo PSDrive=C
PSIsContainer NoteProperty bool PSIsContainer=False
PSParentPath NoteProperty string PSParentPath=Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32
PSPath NoteProperty string PSPath=Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\notepad.exe
..
Directory Property System.IO.DirectoryInfo Directory {get;}
DirectoryName Property string DirectoryName {get;}
...
FullName Property string FullName {get;}
...
Что, конечно, доставит вас сюда:
(Get-Item((gcm notepad.exe).Path)).Directory
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 12/19/2018 1:33 PM system32
(Get-Item((gcm notepad.exe).Path)).DirectoryName
C:\Windows\system32
(Get-Item((gcm notepad.exe).Path)).FullName
C:\Windows\system32\notepad.exe
Таким образом ...
ii (gi((gcm notepad.exe).Path)).FullName
Следует отметить, что это все круто и все для интерактивных вещей, но лучше избегать лучших практик в производственных скриптах, псевдонимах и коротких именах, так как это усложняет понимание и поддержку скрипта.