Suchen einer Zeichenfolge in mehreren Dateien und Zurückgeben des Namens von Dateien in PowerShell
-
Verwenden die Cmdlet
Get-ChildItem
undSelect-String
, um eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell zurückzugeben -
Verwenden Sie
ls
undsls
, um eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell zurückzugeben
Sie können die in einem bestimmten Verzeichnis vorhandenen Dateien mit PowerShell anzeigen. Außerdem können Sie Dateien rekursiv durchsuchen, um die in den Unterverzeichnissen vorhandenen Dateien zu finden.
Aber ist es möglich, eine Zeichenfolge in Dateien zu suchen und die Namen dieser Dateien in PowerShell abzurufen? Die Antwort ist ja. In diesem Tutorial lernen Sie, eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell zurückzugeben.
Verwenden die Cmdlet Get-ChildItem
und Select-String
, um eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell zurückzugeben
Das Cmdlet Get-ChildItem
zeigt eine Liste von Dateien und Verzeichnissen an, die an einem bestimmten Ort vorhanden sind. Der Parameter -Recurse
hilft dabei, alle Dateien, Verzeichnisse oder Unterverzeichnisse rekursiv aufzulisten. Aber es zeigt keine leeren Verzeichnisse in der Ausgabe.
Das Cmdlet Select-String
sucht und findet String-Muster in Dateien.
Der folgende Befehl sucht in allen Dateien im Verzeichnis C:\pc
nach der Zeichenfolge system
und listet den vollständigen Pfad einer Datei auf.
Get-ChildItem -Path C:\New -Recurse | Select-String -Pattern 'system' -List | Select Path
Ausgabe:
Path
----
C:\New\literature_review.pdf
C:\New\Proposal.pdf
C:\New\Draft.pdf
C:\New\Report.docx
C:\New\fyp\Forms.docx
Sie können die Zeile mit der Zeichenfolge auch anzeigen, wenn Sie im Befehl Line
angeben.
Get-ChildItem -Path C:\New -Recurse | Select-String "system" -List | Select Path,Line
Verwenden Sie ls
und sls
, um eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell zurückzugeben
Der Befehl ls
ist beliebt, um Dateien und Verzeichnisse in Unix und Unix-ähnlichen Betriebssystemen aufzulisten. Der Befehl ls
ist auch in der PowerShell verfügbar und funktioniert ähnlich.
Wenn der Pfad nicht angegeben ist, werden die im Arbeitsverzeichnis vorhandenen Dateien und Verzeichnisse aufgelistet. Mit der Option -r
listet ls
die Dateien und Verzeichnisse rekursiv auf.
ls C:\pc
Ausgabe:
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
Das sls
ist ein Alias für das Cmdlet Select-String
. Es sucht auch nach einem Zeichenkettenmuster in Dateien.
Sie können den folgenden Befehl verwenden, um eine Zeichenfolge in mehreren Dateien zu suchen und den Namen von Dateien in PowerShell abzurufen.
ls -r -Path C:\pc | sls 'hello' | select -u Path
Ausgabe:
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
Verwandter Artikel - PowerShell String
- Überprüfen Sie, ob ein String in PowerShell nicht NULL oder LEER ist
- Überprüfen Sie, ob eine Zeichenfolge in PowerShell leer ist
- Auswählen mehrerer Muster in einer Zeichenfolge mithilfe von PowerShell
- Entfernen Sie Leerzeichen aus einer Variablen mit PowerShell
- Ersetzen von Zeichenfolgen in PowerShell
- Extrahieren einer Teilzeichenfolge in PowerShell