在 PowerShell 中在多个文件中搜索字符串并返回文件名

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 Get-ChildItemSelect-String Cmdlet 在多个文件中搜索字符串并返回文件名
  2. 在 PowerShell 中使用 lssls 在多个文件中搜索字符串并返回文件名
在 PowerShell 中在多个文件中搜索字符串并返回文件名

你可以使用 PowerShell 查看特定目录中存在的文件。它还允许你递归搜索文件以查找子目录中存在的文件。

但是是否可以在文件中搜索字符串并在 PowerShell 中获取这些文件的名称?答案是肯定的。本教程将教你在多个文件中搜索字符串并在 PowerShell 中返回文件名。

在 PowerShell 中使用 Get-ChildItemSelect-String Cmdlet 在多个文件中搜索字符串并返回文件名

Get-ChildItem cmdlet 显示特定位置中存在的文件和目录的列表。 -Recurse 参数有助于递归地列出所有文件、目录或子目录。但它不会在输出中显示空目录。

Select-String cmdlet 在文件中搜索和查找字符串模式。

以下命令将在 C:\pc 目录的所有文件中搜索字符串 system 并列出文件的完整路径。

Get-ChildItem -Path C:\New -Recurse | Select-String -Pattern 'system' -List | Select Path

输出:

Path
----
C:\New\literature_review.pdf
C:\New\Proposal.pdf
C:\New\Draft.pdf
C:\New\Report.docx
C:\New\fyp\Forms.docx

如果你在命令中包含 Line,你还可以显示包含字符串的行。

Get-ChildItem -Path C:\New -Recurse | Select-String "system" -List | Select Path,Line

在 PowerShell 中使用 lssls 在多个文件中搜索字符串并返回文件名

ls 命令在列出 Unix 和类 Unix 操作系统中的文件和目录时很流行。ls 命令也可在 PowerShell 中使用,并且功能类似。

如果未指定路径,它将列出工作目录中存在的文件和目录。使用 -r 选项,ls 递归地列出文件和目录。

ls C:\pc

输出:

    Directory: C:\pc


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          1/2/2022   2:53 PM                computing
d-----          1/2/2022   1:24 PM                New folder
-a----          1/2/2022   1:36 PM          17384 hello
-a----          1/2/2022   2:48 PM           5134 matrix.c
-a----        12/26/2020   7:03 PM            321 ReadMe.txt

slsSelect-String cmdlet 的别名。它还在文件中搜索字符串模式。

你可以使用以下命令在多个文件中搜索字符串并在 PowerShell 中获取文件名。

ls -r -Path C:\pc | sls 'hello' | select -u Path

输出:

Path
----
C:\pc\computing\task3\crack
C:\pc\computing\task3\crack1
C:\pc\computing\task3\crack2
C:\pc\computing\task3\cracked
C:\pc\computing\task3\pass
C:\pc\computing\task3\password.txt
C:\pc\computing\task3\pwd
C:\pc\computing\task4\hello
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相关文章 - PowerShell String