Powershell 如何从ls获取全名、路径和文件名?
例如,我可以这样做:Powershell 如何从ls获取全名、路径和文件名?,powershell,Powershell,例如,我可以这样做: PS C:\Builds\Main\> ls "C:\Builds\Main\Prod\Core\prodXML\prodXML\prodXMLElement.cpp" -Name 但是输出是prodXMLElement.cpp 我想通过管道将ls的输出传输到一个控制台程序,该程序需要完整的文件名,包括目录,因此我想得到: C:\Builds\Main\Prod\Core\prodXML\prodXML\prodXMLElement.cpp ls是Get Chil
PS C:\Builds\Main\> ls "C:\Builds\Main\Prod\Core\prodXML\prodXML\prodXMLElement.cpp" -Name
但是输出是prodXMLElement.cpp
我想通过管道将ls的输出传输到一个控制台程序,该程序需要完整的文件名,包括目录,因此我想得到:
C:\Builds\Main\Prod\Core\prodXML\prodXML\prodXMLElement.cpp
ls
是Get ChildItem
的别名,因此您可以找到大量有关此项的信息(您也可以通过键入找到此信息)。要获取整个路径,只需省略-Name
开关。根据管道目标的期望,您可能必须选择全名
示例:
Get-ChildItem -Filter '*.cpp' | Select-Object -ExpandProperty FullName
我正在尝试编辑您的帖子,添加简写符号
gci-filter'*.cpp'|选择全名。这将表明你可以像你喜欢的那样冗长或非常简洁,但也可能会养成坏习惯。。。我会让你决定:)@LievenKeersmaekers我倾向于从不在SO和我的脚本上使用别名,因为这会使它们更难阅读。我确实在交互式cmdline上使用它们;-)@LievenKeersmaekers-别名可能不存在于任何特定系统上,或者可能已被重新定义,因此我将在解释或脚本中使用完整的cmdlet,以确保实际使用了正确的cmdlet。我通常也不依赖位置参数,但为了清楚起见,我总是使用参数名。@JffZeitlin感谢添加链接。所有这些都是真的,没有参数,但新来者无疑会访问,并且可能会因为命令的长度而延迟。在首选方式旁边显示简短的备选方案,并附上必要的警告,可能会更快地吸引他们(或养成坏习惯)。只是大声想一想,这应该是元无论如何。