PowerShell select-object 扩展属性以获得多个值

PowerShell select-object 扩展属性以获得多个值

如何过滤文件名并完成文件路径使用 powershell select-object 扩展属性这里是分区中的文件

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----          3/9/2021   1:14 AM            pics
-a---         1/14/2021   4:35 PM      59929 151104051548IMG_20151103_112015.jpg
-a---         1/14/2021   4:35 PM      80949 151104051558IMG_20151103_123234.jpg
-a---         1/14/2021   4:35 PM      85725 151104051610IMG_20151103_123249.jpg
-a---         1/14/2021   4:35 PM      80519 151104051640IMG_20151103_123924.jpg

过滤文件名称的命令

PS O:\> dir | select -expandproperty name

输出

pics
151104051548IMG_20151103_112015.jpg
151104051558IMG_20151103_123234.jpg
151104051610IMG_20151103_123249.jpg
151104051640IMG_20151103_123924.jpg
151104051658IMG_20151103_130741.jpg
151104051712IMG_20151103_130756.jpg
151104051721IMG_20151103_131053.jpg
151104051853IMG_20151103_090959.jpg

但我也想要完整文件路径对于每个文件名我都使用此命令但收到错误

PS O:\> dir | select -expandproperty Name,FullName
Or
PS O:\> dir | select -expand Name,FullName
Or 
PS O:\> dir | %{$_.Name} %{$_.FullName}

Error:

Select-Object : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'ExpandProperty'.
Specified method is not supported.
At line:1 char:30

我如何过滤多个属性值,有什么简单的方法吗?我只想要不包括属性名称的值,例如

Mode                LastWriteTime     Length Name
----                -------------     -----------

想要输出类似这样的内容:

151104051548IMG_20151103_112015.jpg   o:\151104051548IMG_20151103_112015.jpg 
151104051558IMG_20151103_123234.jpg   o:\151104051558IMG_20151103_123234.jpg 
151104051610IMG_20151103_123249.jpg   o:\151104051610IMG_20151103_123249.jpg

答案1

这应该按照你想要的方式打印:

get-childitem "O:\" | % { Write-Host $_.Name,$_.FullName }

如果您想要所有文件,例如,即使在 \pics\ 文件夹中,您也可以-recurse在管道前添加。

get-childitem "O:\" -recurse | % { Write-Host $_.Name,$_.FullName }

答案2

$> dir . | select name, fullname | ogv
$> get-childitem . | select name, fullname | out-gridview

相关内容