Dateien kopieren und Order erzeugen
Guten Morgen,
ich habe eine Ordnerstruktur die sieht so aus:
C:\Hauptordner\Ordner1
\Ordner2
\Ordner3
\Ordner4
In den Ordner liegen Dateien, diese haben jeweils ein unterschiedliches Prefix
Beispiel Station1_123454.pdf, Station2_12345.pdf usw.
Die Dateien für die verschiedenen Stationen sollen in ein anderes Verzeichnis kopiert werden.
Wie schaffe ich es am einfachsten die Dateien in den Unterordner zu durchforsten, auf dem Zielsystem dann die Ordnerstruktur wie in der Quelle auf dem Zielsystem zu erstellen und entsprechend die Dateien passend in die jeweiligen Unterordner zu hinterlegen?
Im Ziel soll die obrige Struktur falls nicht vorhanden erstellt werden, dann jeweils in Ordner 1-4 passend die Dateien aus der Quelle herausgesucht und auf dem Ziel kopiert werden.
Hat hier jemand ein Tipp?
Es wird auch eine CSV als Basis genommen
Damit finde ich dann zwar die Dateien aber auf der Gegenseite werden keine Ordner angelegt.
ich habe eine Ordnerstruktur die sieht so aus:
C:\Hauptordner\Ordner1
\Ordner2
\Ordner3
\Ordner4
In den Ordner liegen Dateien, diese haben jeweils ein unterschiedliches Prefix
Beispiel Station1_123454.pdf, Station2_12345.pdf usw.
Die Dateien für die verschiedenen Stationen sollen in ein anderes Verzeichnis kopiert werden.
Wie schaffe ich es am einfachsten die Dateien in den Unterordner zu durchforsten, auf dem Zielsystem dann die Ordnerstruktur wie in der Quelle auf dem Zielsystem zu erstellen und entsprechend die Dateien passend in die jeweiligen Unterordner zu hinterlegen?
Im Ziel soll die obrige Struktur falls nicht vorhanden erstellt werden, dann jeweils in Ordner 1-4 passend die Dateien aus der Quelle herausgesucht und auf dem Ziel kopiert werden.
Hat hier jemand ein Tipp?
Es wird auch eine CSV als Basis genommen
"Quelle";"Station";"Ziel";"Rechner"
"\\server\quelle";"Station1";"C:\Stationsordner\";"Rechner1"
Damit finde ich dann zwar die Dateien aber auf der Gegenseite werden keine Ordner angelegt.
Import-Csv -Path C:\MedicationTest.csv -Delimiter ";" -ErrorAction Stop | foreach {
$Station = $_.Station
$Quellpfad = $_.Quelle
$PC = $_.Rechner
$Ziel = $_.Ziel
$Zielpfad = $ziel+$Station
$FolderandFiles =Get-ChildItem -Path $quellpfad -Recurse -Filter "$Station*" | Copy-Item -Destination $ziel -Recurse -Force
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21852627812
Url: https://administrator.de/contentid/21852627812
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Ist ja nicht so das es das hier nicht schon x mal gegeben hat, aber naja, die Suchfunktion wird ja wieder mal Stiefmütterlich genutzt ...
Sid.
foreach ($line in Import-Csv -Path C:\MedicationTest.csv -Delimiter ";"){
foreach($file in Get-ChildItem $line.Quelle -Recurse -File -Filter "$($line.Station)_*"){
$dest = $file.DirectoryName -replace [regex]::escape($line.quelle),($line.Ziel + $line.Station)
if(!(Test-Path $dest)){md $dest -force | out-null}
$file | copy-item -Destination $dest
}
}