Điều này …
$a = Get-Item((gcm pip.exe).Path); Split-Path -Path $a -Parent | ii
.. nghĩa đen là hai lệnh độc lập. Có chúng trên một dòng thực sự biến nó thành một lớp lót, dường như là trường hợp sử dụng của bạn.
Bạn có thể tra cứu cụ thể những gì bạn có thể sử dụng bằng cách sử dụng lệnh ghép ngắn 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;}
...
Tất nhiên là có được bạn ở đây:
(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
Do đó ...
ii (gi((gcm notepad.exe).Path)).FullName
Điểm lưu ý, đây là tất cả tuyệt vời và tất cả cho các công cụ tương tác, nhưng thực tế tốt nhất trong các kịch bản sản xuất, bí danh và tên ngắn nên thực sự nên tránh, vì nó làm cho kịch bản khó hiểu và duy trì.