Script PowerShell wort suche und verschieben
Hallo Zusammen,
ich benötige bitte eure Hilfe. Bin beim Thema Scripting sehr sehr schlecht bewandert.
Aufgabenstellung:
Es muss ein Wort in einem x Beliebigen Pfad z.b.: wertung345 in einer txt Datei gesucht werden.
Im Anschluss muss die Datei in dem das wort vorkommt verschoben werden.
Wunsch wäre das ganze via PowerShell abzuarbeiten.
Habe aber selbst keinen Plan. Würde mir bitte jemand ein Script zusammenstellen.
Das hab ich als ersten Ansatz...
$path = 'D:\'
$search = 'suchmichdoch'
Get-ChildItem $path -Filter *.txt -Recurse | Select-String $search
Vielen Dank
ich benötige bitte eure Hilfe. Bin beim Thema Scripting sehr sehr schlecht bewandert.
Aufgabenstellung:
Es muss ein Wort in einem x Beliebigen Pfad z.b.: wertung345 in einer txt Datei gesucht werden.
Im Anschluss muss die Datei in dem das wort vorkommt verschoben werden.
Wunsch wäre das ganze via PowerShell abzuarbeiten.
Habe aber selbst keinen Plan. Würde mir bitte jemand ein Script zusammenstellen.
Das hab ich als ersten Ansatz...
$path = 'D:\'
$search = 'suchmichdoch'
Get-ChildItem $path -Filter *.txt -Recurse | Select-String $search
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 392057
Url: https://administrator.de/forum/script-powershell-wort-suche-und-verschieben-392057.html
Ausgedruckt am: 23.05.2025 um 10:05 Uhr
14 Kommentare
Neuester Kommentar

Select-String 'D:\*.txt' -Pattern 'JaLeckMichAmArsch,TD,NaImmerNochDerAlteHase?' -SimpleMatch | select -Expand Path | %{move $_ -Destination 'X:\Wohinauchimmer' -Force}
Bin beim Thema Scripting sehr sehr schlecht bewandert.
Da hilft https://www.linetwork.de/powershell-lernen/Gruß l.

anke - nur findet er nichts und verschiebt auch nichts auf dem testgerät.
Weil sein Skript im Regex-Stil sucht und er nicht den Parameter -SimpleMatch verwendet hat Zitat von @Landimax:
Hallo,
danke - nur findet er nichts und verschiebt auch nichts auf dem testgerät... er sollte nach "suchmichdoch" suchen und nach D:\res verschieben...nur es passiert gar nichts.
gci *.txt | %{if($(select-string $_.fullname -pattern "suchmichdoch")) {move-item -path $_.fullname -destination "D:\res"}}
Hallo,
danke - nur findet er nichts und verschiebt auch nichts auf dem testgerät... er sollte nach "suchmichdoch" suchen und nach D:\res verschieben...nur es passiert gar nichts.
gci *.txt | %{if($(select-string $_.fullname -pattern "suchmichdoch")) {move-item -path $_.fullname -destination "D:\res"}}
Bei mir geht's. Wenn es klappt, gibt es keine Rückmeldung und die Dateien sind verschoben. Was sagt denn ein einfaches
gci *.txt
im Testordner?

Dann verwendest du keine Regex Sonderzeichen in deinem Suchstring
! Denn Standard ist Regex Synax im Pattern Parameter aktiv!
Zitat von @137443:
Dann verwendest du keine Regex Sonderzeichen in deinem Suchstring
! Denn Standard ist Regex Synax im Pattern Parameter aktiv!
Dann verwendest du keine Regex Sonderzeichen in deinem Suchstring
Das stimmt. Aber bei "suchmichdoch" ist ja auch kein Regex-Sonderzeichen drin. Oder?

Zitat von @erikro:
Das stimmt. Aber bei "suchmichdoch" ist ja auch kein Regex-Sonderzeichen drin. Oder?
Dort nicht, aber ich vermute er hat den Text hier nur durch einen Platzhalter ersetzt und sucht tatsächlich nach was anderem wo Sonderzeichen wie | ? ^ $ . ( ) [ ] { } usw, vorkommen, dann fällt das ganze natürlich auf die Nase, deswegen dem Anfänger besser gleich diese Möglichkeit wegnehmen ...Das stimmt. Aber bei "suchmichdoch" ist ja auch kein Regex-Sonderzeichen drin. Oder?

Stichwort -recurse. Nutze die Macht der Intellisense min Jung.
Zitat von @Landimax:
Gesucht wird nach einer Buchstaben und Zahlen Kombination. "suchmichdoch" ist nur ein Platzhalter.
Gut das klappt sowit...war mein Fehler.
Nur die Unterordner nimmt er nicht mit. Wie kann ich das noch ergänzen das er z.b. das komplette D Laufwerk inkl unterordner durchsucht?
Gesucht wird nach einer Buchstaben und Zahlen Kombination. "suchmichdoch" ist nur ein Platzhalter.
Gut das klappt sowit...war mein Fehler.
Nur die Unterordner nimmt er nicht mit. Wie kann ich das noch ergänzen das er z.b. das komplette D Laufwerk inkl unterordner durchsucht?
gci *.txt -recurse
sucht nach allen txt-Dateien in dem aktuellen Ordner und allen Unterordnern. Achtung! Wenn Du dann mit
move-item -force
die Dateien verschiebst, dann überschreibst Du Dateien mit demselben Namen im Zielordner.