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-Key: 317755

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

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: 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.
Mitglied: 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!
Mitglied: 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
Mitglied: 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.