使用PowerShell时,有时我只想显示文件的名称或全名.
从我可以收集到的,这样做的方法是使用Get-ItemProperty
(别名gp
)和传递-n fullname
,例如
PS C:\Dev> gp . -n fullname
值得注意的是我要在更长的脚本与结合使用该foreach
和where
,等
然后Powershell显示全名,但它还显示了一堆其他内容,如下所示:
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Dev PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\ PSChildName : Dev PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem fullname : C:\Dev
我的问题是,如何让powershell 只显示我想要的属性(fullname),而不是将所有其他东西都显示出来.是Get-ItemProperty
即使这样做的正确方法?
如果我这样做:
ls -r | ?{ $_.fullname -match "foo" }
这给了我一系列列表,每个目录一个,显示每个目录中的所有'foo'文件.我想要做的是巩固这些多个列表成一个单一的名单,并没有显示Mode
,LastWriteTime
,Length
或任何其他不相关的东西.如果Get-ItemProperty
不是展示这些东西的正确方法,那是什么?
有很多方法.我认为你在寻找Get-ChildItem:
PS> get-childitem x.txt | 选择全名
FullName -------- C:\WINDOWS\system32\WindowsPowerShell\v1.0\x.txt PS > get-childitem x.txt | select name Name ---- x.txt PS > get-childitem x.txt | % { $_.fullname } C:\WINDOWS\system32\WindowsPowerShell\v1.0\x.txt PS >
你可以使用Get-ItemProperty,但我认为它更适用于注册表等事情.
PS > Get-ItemProperty x.txt | select name Name ---- x.txt
格式表,别名ft也很好知道...
PS > gci x.txt | format-table -a fullname,length FullName Length -------- ------ C:\WINDOWS\system32\WindowsPowerShell\v1.0\x.txt 126
常用的Get-ChildItem别名是ls,dir和gci.我在罗马时会和gci一起去.