landimax
Goto Top

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

Content-Key: 392057

Url: https://administrator.de/contentid/392057

Ausgedruckt am: 29.03.2024 um 01:03 Uhr

Mitglied: erikro
erikro 08.11.2018 um 15:55:51 Uhr
Goto Top
Moin,

die Hausaufgaben werden auch immer realitätsferner. face-wink

 gci *.txt | %{if($(select-string $_.fullname -pattern "wertung345")) {move-item -path $_.fullname -destination zielpfad}}  

hth

Erik
Mitglied: 137443
137443 08.11.2018, aktualisiert am 12.11.2018 um 23:55:52 Uhr
Goto Top
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.
Mitglied: Landimax
Landimax 08.11.2018 um 16:15:12 Uhr
Goto Top
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"}}
Mitglied: 137443
137443 08.11.2018 aktualisiert um 16:18:20 Uhr
Goto Top
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 face-wink. Da hat er letztens was gelernt aber anscheinend noch nicht vollständig ;-P.
Mitglied: erikro
erikro 08.11.2018 aktualisiert um 16:18:29 Uhr
Goto Top
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"}}

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?
Mitglied: erikro
erikro 08.11.2018 um 16:19:37 Uhr
Goto Top
Zitat von @137443:

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 face-wink. Da hat er letztens was gelernt aber anscheinend noch nicht vollständig ;-P.

Bei mir geht's ohne -simplematch.
Mitglied: 137443
137443 08.11.2018 aktualisiert um 16:21:42 Uhr
Goto Top
Zitat von @erikro:
Bei mir geht's ohne -simplematch.
Dann verwendest du keine Regex Sonderzeichen in deinem Suchstring face-smile! Denn Standard ist Regex Synax im Pattern Parameter aktiv!
Mitglied: erikro
erikro 08.11.2018 um 16:25:41 Uhr
Goto Top
Zitat von @137443:

Zitat von @erikro:
Bei mir geht's ohne -simplematch.
Dann verwendest du keine Regex Sonderzeichen in deinem Suchstring face-smile! Denn Standard ist Regex Synax im Pattern Parameter aktiv!

Das stimmt. Aber bei "suchmichdoch" ist ja auch kein Regex-Sonderzeichen drin. Oder?
Mitglied: 137443
137443 08.11.2018 aktualisiert um 16:28:54 Uhr
Goto Top
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 ...
Mitglied: erikro
erikro 08.11.2018 um 16:28:52 Uhr
Goto Top
Zitat von @137443:
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.

Das kann natürlich sein.
Mitglied: Landimax
Landimax 08.11.2018 um 16:31:58 Uhr
Goto Top
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?
Mitglied: 137443
137443 08.11.2018 aktualisiert um 16:34:39 Uhr
Goto Top
Zitat von @Landimax:
Nur die Unterordner nimmt er nicht mit.
Stichwort -recurse. Nutze die Macht der Intellisense min Jung.
Mitglied: erikro
erikro 08.11.2018 um 16:43:12 Uhr
Goto Top
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?

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.
Mitglied: Landimax
Landimax 08.11.2018 um 16:47:31 Uhr
Goto Top
Super Danke - das muss ich morgen noch abkären ob etwas überschrieben werden soll.
Soweit sieht es gut aus face-smile
Danke