jenny82
Goto Top

Powershell Dateien verschieben - Kriterien sind dabei Teile von Ordner- und Datei-Namen

Hallo,

ich möchte per Powershell Dateien verschieben. Kriterien sind dabei Ordner- & Datei-Namen


feste Quell UNC-Struktur: \\srv1\a\b\c\d\

für Unterordnerebene5 gilt nur wenn = B*
für Unterordnerebene6 gilt nur wenn = Fotos

Nur Dateien im Unterordnerebene6 = Fotos verschieben!

Quellen sind also \\srv1\a\b\c\d\B*\Fotos\*.jpg


feste Zielstruktur: \\srv2\x\y\z\

Quelle Unterordnerebene 5 = Ziel Unterordnerebene 4
Ziel Unterordnerebene 5 = 3 stellige Zahl aus Dateinamen
Ziel Unterordnerebene 6 = 8 stellige Zahl aus Dateinamen (!)

(!) für die 8 stellige Zahl aus dem Dateinamen sollen für 5 verschiedene Werte, 5 feste Ordnernamen angegeben werden können:

01234567 = Name1
12345678 = Name2
23456789 = Name3
34567890 = Name4
45678901 = Name5

Ziele sind also \\srv2\x\y\z\B*\3stelligeZahl\Name\


Bsp:

Quelle:
\\srv1\a\b\c\d\ Bla\Fotos\abd_xx_01234567_123*.jpg
Blb\Fotos\xyz_kk_12345678_234*.jpg
Blc\Fotos\xyz_hh_23456789_345*.jpg
LLL\Fotos\xyz_xx_12345678_123*.jpg ignorieren
Bla\Sonstiges\xyz_xx_12345678_123*.jpg ignorieren

Ziel:
\\srv2\x\y\z\ Bla\123\Name1\abd_xx_01234567_123*.jpg
Blb\234\Name2\xyz_kk_12345678_234*.jpg
Blc\345\Name3\xyz_hh_23456789_345*.jpg


Kann mir da ein Profi bitte helfen?

Gruß und Danke
Jenny

Content-ID: 317755

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

Ausgedruckt am: 25.11.2024 um 08:11 Uhr

131026
131026 13.10.2016, aktualisiert am 14.10.2016 um 12:21:02 Uhr
Goto Top
$source = '\\srv1\a\b\c\d'  
$target = '\\srv2\x\y\z'  
$map = @{
'01234567' = 'Name1'  
'12345678' = 'Name2'  
'23456789' = 'Name3'  
'34567890' = 'Name4'  
'45678901' = 'Name5'  
}
gci "$source\B*\Fotos\*.jpg" | ?{$_.Fullname -match '\\([^\\]+)\\Fotos\\.*?(\d{8})_(\d{3}).*\.jpg$'} | %{  
       $newfolder = "$target\$($matches[1])\$($matches[3])\$($map.($matches[2]))"  
       if (!(Test-Path $newfolder)){md $newfolder -Force}
       move-item $_.Fullname -Destination $newfolder -Force
}
Gruß R.

@Kraemer
klar. Wieviel willst du zahlen?
Ist das hier jetzt ein Marktplatz oder ein Forum ?
Geh zu Mama und hol dir dein Taschengeld ab wenn's diesen Monat schon nicht mehr reicht.
Kraemer
Kraemer 14.10.2016 um 06:16:59 Uhr
Goto Top
Zitat von @131026:
@Kraemer
klar. Wieviel willst du zahlen?
Ist das hier jetzt ein Marktplatz oder ein Forum ?
Geh zu Mama und hol dir dein Taschengeld ab wenn's diesen Monat schon nicht mehr reicht.
So langsam mutiert das hier von einem Forum zu Wünsch dir was!
Jenny82
Jenny82 14.10.2016 um 12:19:43 Uhr
Goto Top
Hallo und erstmal ein Danke an Ranger für die Hilfe!

Die 2. letze Klammer war zuviel oder?
}

> if (!(Test-Path $newfolder)){md $newfolder -Force}
musste ich ersetzen durch
if (!(Test-Path $newfolder)){md $newfolder -Force | out-null}

Davor macht das Script nichts. Richtig ?

Jetzt ist es so, dass das Ziel nicht dem $target\B*\d{3}\{map} entspricht sondern
dass es sich aus $target\$source\B*\d{3}\ zusammensetzt.
Der Sourcepfad ist also zuviel und den Mapping-Ordner macht er gar nicht.

Macht es einen Unterschied ob es sich um UNC-Pfade oder Laufwerkspfade handelt oder nicht (\\srv1\ vs. L:\) ?

Viele Grüße
Jenny
131026
131026 14.10.2016 aktualisiert um 12:37:27 Uhr
Goto Top
Zitat von @Jenny82:
Die 2. letze Klammer war zuviel oder?
}
Ja ist korrigiert
> if (!(Test-Path $newfolder)){md $newfolder -Force}
musste ich ersetzen durch
if (!(Test-Path $newfolder)){md $newfolder -Force | out-null}

Davor macht das Script nichts. Richtig ?
Falsch diese Änderung von dir bewirkt nur das die Ausgabe der Erstellung eines neuen Ordners unterdrückt wird. Das kannst du also gerne machen face-wink

Jetzt ist es so, dass das Ziel nicht dem $target\B*\d{3}\{map} entspricht sondern
dass es sich aus $target\$source\B*\d{3}\ zusammensetzt.
Der Sourcepfad ist also zuviel und den Mapping-Ordner macht er gar nicht.
Kann ich nicht bestätigen, geht hier problemlos.
Macht es einen Unterschied ob es sich um UNC-Pfade oder Laufwerkspfade handelt oder nicht (\\srv1\ vs. L:\) ?
Nein, nur das natürlich ebenfalls ausreichende Berechtigungen vorhanden sein müssen.

Die Funktionsfähge Vorlage hast du jetzt, was du damit jetzt machst ist dein Problem und deine Arbeit.