18.10.2022, 12:12
1
Also, goodsubarita hatte dir ja schon fast den kompletten Code für dein ursprüngliches Vorhaben gegeben. Es fehlten eigentlich nur noch die Befehle um Ordner zu erstellen und die Dateien zu kopieren. Das kann alles mit in die Schleife. Habe das hier gerade mal getestet, damit sollte das automatische erstellen der Ordner, und kopieren der Source Dateien problemlos funktionieren:
Code:
[string]$src = "D:\test"
[string]$dest = "D:\test\out"
# Quellverzeichniss einlesen
$fileList = Get-Item "$src\*"
# Anfang der Schleife
foreach ($file in $fileList) {
# Sicher gehen dass nur Dateien angezeigt werden
if( $file -is [System.IO.FileInfo]) {
# aktuelle Datei anzeigen
#Write-Host "Datei inkl. Pfad: $file"
$fileNamewoPath = [System.IO.Path]::GetFileNameWithoutExtension($file)
#Write-Host "Nur Dateiname: $fileNamewoPath"
# Dateiname nach "-", gesplittet, zwei Teile, deswegen [1] am Ende
# uns interessiert nur der zweite Teil
$folderName = $fileNamewoPath.Split('-')[1]
#Write-Host "Der Teil, der uns interessiert: $folderName"
# Prüfen ob das Verzeichniss existiert
if(Test-Path "$dest\$foldername") {
Write-Host "Ordner $foldername existiert, kopiere Datei $fileNamewoPath"
Copy-Item $file -Destination $dest\$folderName
} else {
Write-Host "Ordner $foldername wird erstellt, und Datei $fileNamewoPath kopiert"
New-Item -Path $dest\$foldername -ItemType Directory | Out-Null
Copy-Item $file -Destination $dest\$folderName
}
}
}