📌  相关文章
📜  在 powershell 中查找文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:23:15.527000             🧑  作者: Mango

在 PowerShell 中查找文件 - Shell-Bash

在 PowerShell 中查找文件是一项重要的任务,需要有效的工具和技巧。本文将介绍如何使用 PowerShell 查找文件。

查找目录中的所有文件

使用 Get-ChildItem(或其别名 ls 和 dir)命令以递归方式遍历目录树。使用通配符 * 或 ? 来匹配文件名。例如,以下命令将查找 C 盘根目录下的所有 .txt 文件:

Get-ChildItem -Path C:\ -Recurse -Filter *.txt
  • -Path:指定要查找文件的起始目录(默认为当前目录)。
  • -Recurse:递归地遍历子目录。
  • -Filter:指定要查找的文件的过滤器。
按名称查找文件

使用 Where-Object 命令从输出中选择需要的文件。以下命令选择 C 盘根目录下的所有以 .log 结尾的文件:

Get-ChildItem -Path C:\ -Filter *.log | Where-Object {$_.Name -like "*.log"}
  • |:管道符将输出结果传入下一个命令。
  • $_.Name:输出结果中的文件名。
  • -like:指定通配符匹配规则。
按时间,大小或属性查找文件

使用 -Time, -Size, 或 -Attributes 参数来指定要查找的文件的时间、大小或属性。以下命令选择 C 盘根目录下最近 7 天修改过的所有 .log 文件:

Get-ChildItem -Path C:\ -Filter *.log -Recurse -File -Attributes !Directory | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)}
  • -File:只选择文件,而不是目录或其他对象。
  • -Attributes !Directory:排除目录。
  • $_.LastWriteTime:文件的最后修改时间。
  • -gt:大于符号。
输出结果到文件

使用 Out-File 命令将结果输出到文件。以下命令将在 C 盘根目录下创建名为 files.txt 的文件,并将所有以 .log 结尾的文件的完整路径写入该文件:

Get-ChildItem -Path C:\ -Filter *.log -Recurse | Select-Object FullName | Out-File -FilePath C:\files.txt
  • Select-Object:只选择 FullName 属性。
  • -FilePath:输出文件的路径和名称。
结论

使用 PowerShell 查找文件可以轻松快捷地执行各种文件管理任务。以上命令仅是其中的一部分,PowerShell 中还有更多高级技巧,您可以根据需要进行搜索和学习。