irixuser
Goto Top

Powershell - Dateien suchen und an der gefundenen Stelle in Ordner verschieben

Ich würde gern nach bestimmten Dateien suchen und diese in einen Ordner verschieben der an der gefundenen Stelle angelegt werden soll.

Hallo zusammen,

kann mir jemand behilflich sein ?

Das Problem:
Auf einem Server befinden sich sehr viele Datein mit dem namen Gutachten. Diese möchte ich finden, an der gefundenen Stelle einen Ordner anlegen und die Datei "Gutachten" in diesen Ordner verschieben.
Wenn es möglich ist, würde ich gern diesem Ordner alle Leserechte entziehen und nur Adminrechte vergeben. Natürlich auch mit der Shell...

Bsp:
Die erste Datei "Gutachten.doc" befindet sich im Verzeichnis c:\users\ich\Desktop\Gutachten.doc
Nun soll ein Ordner namens "Gutachten-Sicherung" angelegt werden und zwar dort, wo die Datei gefunden wurde. Also unter
c:\users\ich\Desktop\Gutachten-Sicherung

In diesen Ordner soll nun die Datei Gutachten.doc verschoben werden.
c:\users\ich\Desktop\Gutachten-Sicherung\Gutachten.doc

Eine weitere Datei liegt z.B. im Verzeichnis
c:\users\ich\projekte\2005\irgendwas\Gutachten.pdf
Jetzt soll wieder ein Ordner an der Stelle ...\projekte\2005\irgendwas\Gutachten-Sicherung
angelegt werden und wieder die Datei dorthin verschieben.

Mein erster Lösungsansatz:
Dateien suchen mit GET-Childitem
Ordner anlegen mit New-Item
Datei verschieben mit Move-Item

OK!

Aber wie erkläre ich der Shell das der Ordner an der gefundenen Stelle angelegt werden soll?
Muss man erst die gefunden Pfade in ein Array schreiben und dieses dann mühsam nach einem String absuchen und diesen dann weiterverwenden?

Der Teil mit den Rechten ist vorerst nicht so wichtig.
Ich würde mich sehr freuen wenn mir jemand einen zweizeiler oder so zur Verfügung stellen könnte, der mein Problem löst.

Schon mal Danke im voraus!

Viele Grüße
PL

Content-ID: 159392

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

IRIXuser
IRIXuser 27.01.2011 um 15:30:45 Uhr
Goto Top
Hallo zusammen,

ich konnte das Problem selbst lösen.
Der Code hat mir geholfen hunderte Dateien zu finden einen Ordner an der gefundenen Stelle zu erstellen und die gesuchte Datei in diesen neuen Ordner zu verschieben.
Sotte jemand ein ähnliches Problem haben, ist hier ein funktionierender Lösungsansatz.

# Verzeichnisliste auf Variable speichern
$list = gci .\
# Für jede Zeile ( in jedem Ordner ) einen Ordner "Auftrag" anlegen 
foreach($pfad in $list){ni $pfad\Auftrag}
#Dateien names Gutachen suchen, pfad convertieren und in eine Variable speichern
$ort = gci .\ *Gutachten* -r | convert-path
#Zeilenweise abarbeiten und Datei in Ordner verschieben
foreach($pfad in $ort){mi $pfad\Auftrag}


[Edit Biber] Codeformatierung nachgetragen - Text wird schon durch die #-Zeichen (in (ps=Zeilenkommentar; in der Forensoftware Aufzählungszeichen falsch dargestellt. [/Edit]