获取在PowerShell中的文件的完整路径(Get full path of the files

2019-07-03 11:05发布

我需要得到包括所有属于特定类型出现在子文件夹中的文件的文件。

我做这样的事情,使用GET-ChildItem :

Get-ChildItem "C:\windows\System32" -Recurse | where {$_.extension -eq ".txt"}

然而,这只是我返回的文件名,而不是整个路径。

Answer 1:

添加| select FullName | select FullName以上的行的末尾。 如果您需要实际做的东西之后,你可能要管它变成一个foreach循环,就像这样:

get-childitem "C:\windows\System32" -recurse | where {$_.extension -eq ".txt"} | % {
     Write-Host $_.FullName
}


Answer 2:

这应该执行比使用后期过滤快得多:

Get-ChildItem C:\WINDOWS\System32 -Filter *.txt -Recurse | % { $_.FullName }


Answer 3:

您还可以使用选择,对象 ,像这样:

Get-ChildItem "C:\WINDOWS\System32" *.txt -Recurse | Select-Object FullName


Answer 4:

这里有一个较短的一个:

(Get-ChildItem C:\MYDIRECTORY -Recurse).fullname > filename.txt


Answer 5:

如果相对路径是你想要的,你可以只使用-Name标志。

Get-ChildItem "C:\windows\System32" -Recurse -Filter *.txt -Name



Answer 6:

Get-ChildItem -Recurse *.txt | Format-Table FullName

这是我用什么。 我觉得这是更容易理解,因为它不包含任何循环语法。



Answer 7:

这为我工作,并产生名称的列表:

$Thisfile=(get-childitem -path 10* -include '*.JPG' -recurse).fullname

我发现它使用get-member -membertype properties ,一个非常有用的命令。 大多数的它给你的选项都附加了一个.<thing> ,像fullname是在这里。 你能坚持同样的命令。

  | get-member -membertype properties 

在任何命令结束时得到的东西,你可以与他们以及如何访问这些操作的详细信息:

get-childitem -path 10* -include '*.JPG' -recurse | get-member -membertype properties


Answer 8:

试试这个:

Get-ChildItem C:\windows\System32 -Include *.txt -Recurse | select -ExpandProperty FullName


Answer 9:

gci "C:\WINDOWS\System32" -r -include .txt | select fullname


Answer 10:

[替代语法]

对于一些人来说,定向管道运营商都没有自己的口味,但他们宁可选择链接。 查看此主题Roslyn的问题跟踪共享一些有趣的观点: DOTNET /罗斯林#5445 。

根据情况和环境中,这种方法的一个可以被认为是隐式的(或间接)。 例如,在这种情况下使用烟斗枚举需要特殊令牌$_ (又名PowerShell's "THIS" token )可能会出现令人反感一些。

对于这样的小伙子们,这里是点链接做的更简洁,直接的方法:

(gci . -re -fi *.txt).FullName

(<咆哮>请注意,PowerShell的命令参数解析器接受部分参数名称所以除了。 -recursive ; -recursiv-recursi-recurs-recur-recu-rec-re被接受,但遗憾的是没有-r ..这是唯一正确的选择是有道理的单-字符(如果我们通过POSIXy UNIXy公约)</夸夸其谈>)



Answer 11:

在PS中5,其中$ _不会的foreach内的完整路径真的很烦人的事情。 这些都是FileInfo的和的DirectoryInfo对象的字符串版本。 出于某种原因,在路径通配符修复它,或者在中间使用PS 6.你也可以管得到项目。

Get-ChildItem -path C:\WINDOWS\System32\*.txt -Recurse | foreach { "$_" }

Get-ChildItem -path C:\WINDOWS\System32 -Recurse | get-item | foreach { "$_" }


Answer 12:

我使用下面的脚本来extact所有文件夹的路径:

Get-ChildItem -path "C:\" -Recurse -Directory -Force -ErrorAction SilentlyContinue | Select-Object FullName | Out-File "Folder_List.csv"

完整的文件夹路径不来了。 经过113个字符,是未来:

Example - C:\ProgramData\Microsoft\Windows\DeviceMetadataCache\dmrccache\en-US\ec4d5fdd-aa12-400f-83e2-7b0ea6023eb7\Windows...


文章来源: Get full path of the files in PowerShell