Vorhandene Datei automatisch in neu erstellte Ordner kopieren
Hallo zusammen.
Ich möchte folgendes realisieren, habe da aber keinen Ansatz gefunden.
Ich habe eine Exceldatei mit Inhalt.
Ich habe eine Ordnerstruktur auf einem Netzlaufwerk.
Ich möchte folgendes realisieren, habe da aber keinen Ansatz gefunden.
Ich habe eine Exceldatei mit Inhalt.
Ich habe eine Ordnerstruktur auf einem Netzlaufwerk.
- Ordner 1
- Ordner 1.1
- Ordner 1.1.1
- Ordner 1.1.2
- Ordner 1.2
- Ordner 1.2.1
- Ordner 1.2.2
usw.
über das Jahr kommen in Ordner 1
neue Unterordner, und auch Unterunterordner hinzu.
Ich möchte, das die Exceldatei automatisch nach dem Erstellen eines Unterordners und Unterunterordners in eben diesen kopiert wird, habe aber keine Ahnung, wie ich das anstellen soll.
Im Moment kopiere ich die Datei von Hand, was aber echt Lästig ist, da am Tag auch schon mal 10 neue Unterordner hinzukommen.
Könnt ihr mir da weiterhelfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 627153
Url: https://administrator.de/forum/vorhandene-datei-automatisch-in-neu-erstellte-ordner-kopieren-627153.html
Ausgedruckt am: 22.04.2025 um 19:04 Uhr
14 Kommentare
Neuester Kommentar
Hallo,

Gruß,
Peter
Zitat von @NordicMike:
d.H. sobald jemand einen Ordner und Unterordner erstellt, soll die Excel Datei automatisch dort hin verschoben werden?
Der TO sagt explicit kopieren, nicht verschieben d.H. sobald jemand einen Ordner und Unterordner erstellt, soll die Excel Datei automatisch dort hin verschoben werden?
Gruß,
Peter

Kleines PS Skript mit Filesystemwatcher...
$folder = 'D:\Basefolder'
$global:file = 'D:\datei.xlsx'
Unregister-Event -SourceIdentifier ObjCreated -EA 0
$fsw = New-Object IO.FileSystemWatcher $folder, '*' -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'DirectoryName','LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier ObjCreated -Action {
$fullpath = $Event.SourceEventArgs.FullPath
$timeStamp = $Event.TimeGenerated
if((gi $fullpath).PSIsContainer){
Write-Host "Der Ordner '$fullpath' wurde um '$timeStamp' erstellt." -f green
if (!(Test-Path (join-path $fullpath ([io.path]::GetFileName($global:file))))){
copy -LiteralPath $global:file -Destination $fullpath -Verbose -Force
}
}
} | out-null
cls
Write-Host "Warte auf neue Ordner unterhalb (rekursiv) von '$folder' ..." -f Green
while($true){
[void]$fsw.WaitForChanged("Created",2000)
}

Dann hast du's nicht richtig angepasst einen ungültigen Pfad angegeben (Ein FSW kann zu.B. keine UNC Pfade nutzen) oder eine zu alte PS.
Wurde hier getestet und läuft einwandfrei.
Wurde hier getestet und läuft einwandfrei.

Sach ich doch
.

Sicher geht das, mach es halt richtig ... Nur zur Info, Netzlaufwerke sind Userabhängig gemappt, also muss entweder das Skript mit den Creds des users laufen oder im Skript das Laufwerk erst gemappt werden, oder ein UNC-Pfad genutzt werden, das ist sicher dein Fehler! Beachtet man das kann man das auch mittels System-Account laufen lassen (Berechtigungen/NTFS-ACLs der Zielordner beachten!).

Nö, klappt hier einwandfrei. Kopiere das Skript nochmal in deinem erneut geposteten sind noch ein paar Variablen aus einer alten Version gesetzt. Wohl irgendwas im Browser-Cache hängen geblieben.