cleverm

PS-Skript anhand Dateinamen und zusätzlich Dateityp (Mapping) verschieben

Hallo Community,

ich habe ein Script das mir anhand des Dateinamens und Quell-Ordnerstruktur verschiebt und soweit auch funktioniert.
Jetzt soll es jedoch zusätzlich anhand des Dateityps diese in unterschiedliche Ordner verschieben.

Dateitypen sind immer nur Textdateien, csv-Dateien und die dazugehörigen Importprotokolle als
.txt /.csv & .txt_imp.log /.csv_imp.log


Die Dateinamen haben die Struktur XYZABC_1234567890123_1234567890123_JJJJMMTT_... + Dateityp
... kann beliebig sein.

Powershell-Version 2 wird leider vorgegeben, also 3 oder größer nicht unterstüzt!

Im Skript unten entspricht $mapTyp dem Dateityp. in der 1. Zeile müsste jetzt .txt eben durch den Befehl dafür ersetzt werden, was ich jedoch nicht hinkriege. $newfolder würde dann ganz einfach mit dem zusätzlichen Unterordner $mapTyp ergänzt .

$quelle= 'c:\temp\1'
$ziel = 'D:\'

$mapTyp = @{
'txt' = 'Nachrichten'
'csv' = 'Nachrichten'
'log' = 'Logs'
}

$mapMP = @{
'1234567890123' = 'a'
'2345678901234' = 'b'
'3456789012345' = 'c'
}


gci "$quelle\a*\Done\*.*" | ?{$_.Fullname -match '\\([^\\]+)\\Done\\.*?(\d{13})_\d{13}_(\d{4}).*\.txt$'} | %{
$newfolder = "$ziel\$($matches[1])\$($matches[3])\$($mapMP.($matches[2]))"
if (!(Test-Path $newfolder)){md $newfolder -Force}
move-item $_.Fullname -Destination $newfolder -Force
}

Kann mir hier jemand helfen?
Wäre sehr dankbar!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 318528

Url: https://administrator.de/forum/ps-skript-anhand-dateinamen-und-zusaetzlich-dateityp-mapping-verschieben-318528.html

Ausgedruckt am: 12.05.2025 um 01:05 Uhr

131223
Lösung 131223 20.10.2016 aktualisiert um 12:32:30 Uhr
Goto Top
$newfolder = "$ziel\$($mapTyp.($_.Extension.replace('.','')))\$($matches[1])\$($matches[3])\$($mapMP.($matches[2]))"  
und im Regex am Ende das "txt" wegmachen, da ja ansonsten nur Textdateien genommen werden.
cleverm
cleverm 20.10.2016 um 13:31:47 Uhr
Goto Top
Vielen Dank für die schnelle Hilfe.
Hat super funktioniert.