none
Script für das automatische Verschieben von Dateien in festgelegte Ordner RRS feed

  • Frage

  • Hallo,

    ich bin leider nicht sehr bewandert, was PowerShell Scripting angeht, aber wüsste gern, ob es eine Möglichkeit gibt, mithilfe eines solchen Scripts das automatische Verschieben von Dateien von einem zentralen Ordner in einen anderen, innerhalb des Scripts definierten Ordner zu verschieben.

    Optimalerweise sogar in verschiedene Ordner, abhängig vom jeweiligen Prefix der Datei, beispielsweise: Datei "Lieferschein_12345.pdf" wird bei Ablegen in den zentralen Ordner automatisch in Order "Lieferscheine" verschoeben. Datei "Rechnung_12345.pdf" wird automatisch in Order "Rechnungen" verschoben.

    Da ich selbst aus der Programmierung komme und weiß, dass das alles mit Aufwand verbunden ist, erfrage ich hier gar nicht konkret ein fertiges Script (zumindest nicht kostenlos), aber wenn mir jemand sagen könnte, ob dies überhaupt möglich ist, wäre mir schon weiter geholfen :-)

    Vielen Dank im Voraus!

    Freitag, 27. September 2019 14:43

Antworten

  • Ich weiß ja nicht aus welcher "Programmierung" Du kommst, aber ein einigermaßen erfahrener Programmierer sollte diese Aufgabe in wenigen Minuten mit cmd und robocopy lösen können.

    So lange die Dateien immer mit Wörtern wie "Lieferschein" oder "Rechnung" anfangen, brauchst Du ja nur mit Wildcards arbeiten ... also

    robocopy Quelle Ziel Rechnung*.pdf


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Bearbeitet BOfH-666 Freitag, 27. September 2019 14:54
    • Als Antwort markiert dolearczyk Freitag, 27. September 2019 15:20
    Freitag, 27. September 2019 14:53

Alle Antworten

  • Ich weiß ja nicht aus welcher "Programmierung" Du kommst, aber ein einigermaßen erfahrener Programmierer sollte diese Aufgabe in wenigen Minuten mit cmd und robocopy lösen können.

    So lange die Dateien immer mit Wörtern wie "Lieferschein" oder "Rechnung" anfangen, brauchst Du ja nur mit Wildcards arbeiten ... also

    robocopy Quelle Ziel Rechnung*.pdf


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Bearbeitet BOfH-666 Freitag, 27. September 2019 14:54
    • Als Antwort markiert dolearczyk Freitag, 27. September 2019 15:20
    Freitag, 27. September 2019 14:53
  • Schade, dass ein zurückhaltend formulierter Post in einem für mich neuen Forum so "zerlegt" wird und einem mittels Anführungszeichen implizit Qualifikationen abgesprochen werden.

    Da ich leider keine Ahnung von PowerShell habe, wollte ich nur wissen, wie (leicht oder schwer) soetwas zu bewerkstelligen ist, da ich beruflich eher mit PHP und vue.js zu tun habe.

    Aber nun gut, ich habe ja meine Antwort, daher dennoch vielen Dank


    • Bearbeitet dolearczyk Freitag, 27. September 2019 15:09
    Freitag, 27. September 2019 15:08
  • Nun ja, ein wenig Google tuts a auch:
    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/move-item?view=powershell-6

    Für deine Anforderung wäre dies z.B.

    Move-Item -Path .\Lieferschein*.pdf -Destination C:\Lieferschein
    Wozu dann noch Robocopy?


    Freitag, 27. September 2019 15:30
  • Da hast Du wohl mehr hineininterpretiert als ich reinpacken wollte. Du als erfahrener Programmierer dürftest die Grundlagen von Powershell in einer halben Stunde verstanden haben und einfache Aufgaben damit lösen ... für diese spezielle Aufgabe ist das aber gar nicht nötig ... wenn die Aufgabe wirklich nur das ist.  ;-)

    Allgemeine Anfragen wie Deine haben gerne mal einen etwas faden Beigeschmack, weil der Anfragende häufig eigentlich eine fertige Lösung oder etwas in der Nähe erwartet.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH-666 Freitag, 27. September 2019 15:31
    Freitag, 27. September 2019 15:30
  • Da hast Du wohl mehr hineininterpretiert als ich reinpacken wollte. Du als erfahrener Programmierer dürftest die Grundlagen von Powershell in einer halben Stunde verstanden haben und einfache Aufgaben damit lösen ... für diese spezielle Aufgabe ist das aber gar nicht nötig ... wenn die Aufgabe wirklich nur das ist.  ;-)

    Allgemeine Anfragen wie Deine haben gerne mal einen etwas faden Beigeschmack, weil der Anfragende häufig eigentlich eine fertige Lösung oder etwas in der Nähe erwartet.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''


    Deswegen habe ich meine Frage auch so formuliert, dass ich das auf keinen Fall erwarte, weil ich von niemandem erwarte, dass er mir "das Essen vorkaut" - ein kleiner Hint war eher meine Absicht. Und genau diesen Hint habe ich ja von Dir erhalten, wodurch ich mein Ziel auch schnell erreichen konnte.

    Denn - und da hast Du absolut Recht - ich konnte recht easy in die Syntax einsteigen und kurzfristig ein PowerShell Script schreiben bzw. mit Code-Schnipseln zusammenfügen. Also nochmal danke dafür!

    Falls jemand nach einer Lösung mit Folder-Monitoring und Event-basiertem Kopieren/Verschieben von Dateien gesucht hat, hier meine Lösung, die soweit gut funktioniert. Sicherlich variabler gestaltbar, aber es läuft:

    ### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
        $watcher = New-Object System.IO.FileSystemWatcher
        $watcher.Path = "C:\***\Downloads"
        $watcher.Filter = "*.*"
        $watcher.IncludeSubdirectories = $true
        $watcher.EnableRaisingEvents = $true  
    
    ### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
        $action = { $path = $Event.SourceEventArgs.FullPath
                    robocopy /MOV C:\***\Rechnungen Rechnung*.pdf
                    robocopy /MOV C:\***\Lieferscheine Lieferschein*.pdf
                  }    
    ### DECIDE WHICH EVENTS SHOULD BE WATCHED 
        Register-ObjectEvent $watcher "Created" -Action $action
        Register-ObjectEvent $watcher "Changed" -Action $action
        Register-ObjectEvent $watcher "Deleted" -Action $action
        Register-ObjectEvent $watcher "Renamed" -Action $action
        while ($true) {sleep 1}
    So far

    Freitag, 27. September 2019 15:42
  • Falls jemand nach einer Lösung mit Folder-Monitoring und Event-basiertem Kopieren/Verschieben von Dateien gesucht hat, hier meine Lösung, die soweit gut funktioniert.

    Nicht schlecht - völliger Anfänger bei PowerShell, aber Du hast auf jeden Fall Erfahrung. Thumbs up :-)


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Freitag, 4. Oktober 2019 15:11