如何过滤文件名并完成文件路径使用 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