Jump to content

Skript für Ordnerstruktur teilweise kopieren


Direkt zur Lösung Gelöst von BOfH_666,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Morgen und vielen Dank für eure Hilfe!

 

@BOfH_666 Echt genial, tut fast genau was es soll. Jetzt braucht es nur noch ein kleines bisschen Feinschliff. 

 

-ChildPath '*.pdf'

Hiermit suchen wir ja explizit nach PDF-Dokumenten. Kann ich hier auch noch weitere Dateitypen mit einschließen? 

-ChildPath '*.pdf & *.jpg & *.pdf'

funktioniert leider nicht und in der Microsoft Doku sind auch nur Beispiele mit einem Parameter. Geht das nicht auch mit mehreren? 

 

Ideal wäre es außerdem noch, wenn aus dem Ordner A01_Vorgaenge alle PDF Dateien kopiert werden die mit LF- oder BE- beginnen, sodass auch Lieferscheine und Bestellungen mitkopiert werden. Muss ich dazu den oberen Teil der Suche nochmals mit neuen Parametern anhängen und in das Array schreiben oder kann man das auch noch mit in die vorhandenen Schleife integrieren? 

 

vor 8 Stunden schrieb BOfH_666:

Du hattest erwähnt, dass Du Dich näher mit dem Thema Scripting befassen möchtest. Das ist mit Sicherheit eine sehr gute Idee. Du solltest Dir ein bissl Zeit nehmen, um Dir die Grundlagen von Powershell draufzuschaffen. 

Ein guter Einstieg, wie ich finde, ist immernoch der Video-Kurs mit Jeffrey Snover: Getting Started with Powershell. Und wenn Du was zum Nachschlagen brauchst, kannst Du Dir das hier anschauen: Windows PowerShell™ 4: TFM.  ... beides kostenlos. :thumb1:

Danke für den Tipp, das werde ich mir auf jeden Fall reinziehen. Wollte schon fragen, wie du dir den Spaß angeeignet hast ;-)

bearbeitet von noobi
Link zu diesem Kommentar

 

Zitat

Danke für den Tipp, das werde ich mir auf jeden Fall reinziehen.

Möglichst bitte nicht so lange warten!  ... das Wochenende steht vor der Tür ... und wir sind wegen Corona sowieso eingeschränkt ... warum nicht die Zeit sinnvoll nutzen?  ;-)  :D 

Zitat

Wollte schon fragen, wie du dir den Spaß angeeignet hast ;-)

Soll das heißen, Du glaubst, dass ich meine Kenntnisse aus diesen beiden Quellen erhalten habe? ;-)  ... Du bist ja putzig ... sagen wir einfach "Ich mache das schon lange genug, um ein wenig Erfahrung angehäuft zu haben.". :D :cool:

 

vor 31 Minuten schrieb noobi:

 

@BOfH_666 Echt genial, tut fast genau was es soll. Jetzt braucht es nur noch ein kleines bisschen Feinschliff. 

"kleines bisschen Feinschliff"???   Du krempelst grade die Anforderungen um.

Zitat

Hiermit suchen wir ja explizit nach PDF-Dokumenten. Kann ich hier auch noch weitere Dateitypen mit einschließen? 

Das hätte alles in Deine erste nachricht gehört. Fällt Dir wenigstens auf, dass Du hier die Anforderungen Stück für Stück erweiterst?

Zitat

-ChildPath '*.pdf & *.jpg & *.pdf'

funktioniert leider nicht und in der Microsoft Doku sind auch nur Beispiele mit einem Parameter. Geht das nicht auch mit mehreren? 

1. Was ist der Unterschied zwischen *.pdf und *.pdf. Das hast Du zwei mal. ;-) 
2. Das hängt davon ab, ob Du während der Ermittlung der zu kopierenden Ordner danach suchen möchtest, oder ob Du nur die Dateien beim Copy-Job mit einschließen möchtest. Dann einfach bei robocopy ein weiteres "Datei-Muster" angeben.

3. Das lernst Du auch mit den Grundlagen von Powershell - wie die Hilfe zu lesen und zu verstehen ist. Die Hilfe ist übrigens in der Powershell eingebaut. Du kannst für jedes cmdlet in der Konsole oder in der ISE oder in VSCode einfach mit "Get-Help <cmdlet>" die Hilfe aufrufen.

Zitat

Ideal wäre es außerdem noch, wenn aus dem Ordner A01_Vorgaenge alle PDF Dateien kopiert werden die mit LF- oder BE- beginnen, sodass auf Lieferscheine und Bestellungen mitkopiert werden. Muss ich dazu den oberen Teil der Suche nochmals mit neuen Parametern anhängen und in das Array schreiben oder kann man das auch noch mit in die vorhandenen Schleife integrieren? 

Hmmm ... bitte möglichst nicht falsch verstehen, aber ich glaube, das ist die Stelle, an der ich darum bitte, dass Du diese Erweiterungen selbst einbaust, sobald Du genug Powershell-Kentnisse erworben hast, um das alleine zu machen - wenigstens zum größten Teil. 

 

Angefangen hast Du - jedenfalls hab ich es so verstanden - mit PDF-Dateien in "B01_"-Ordnern, jetzt sind noch JPG-Dateien dazu gekommen - kein Problem - kannst Du bei robocopy einfach mit einschließen. Jetzt kommen aber noch "A01_"-Odner und PDF-Dateien dazu - die aber nur wenn sie mit "LF-" oder "BE-" anfangen ....

Man kann so ein Script natürlich beliebig komplex gestallten. Aber je komplexer es wird, desto fehlerträchtiger und schwerer zu pflegen wird es auch gern mal. Dann kommen Wechsel- oder Nebenwirkungen dazu, die häufig sehr schwer zu ermitteln und zu beseitigen sind. 

Eventuell wird auch die Leistung/Verarbeitungsdauer beeinflusst. Du hattest am Anfang beschrieben, dass es um ca. 10TB an Daten in ca. 1000 Projekt-Ordnern mit den entsprechenden Unterordnern geht. Powershell ist, wenn es um Dateisytem-Operationen geht, nicht die beste (weil ziemlich langsame) Option, die man wählen kann. Deshalb ist auch robocopy immer wieder das Mittel der Wahl, weil es um Größenordnungen schneller ist. Wenn Du jetzt aber die Powershell benutzt, um quasi jede einzelne Datei zu identifizieren und robocopy dann fast nur noch einzelne Dateien kopieren soll, dann ist der Geschwindigkeits-Vorteil dahin und das Script läuft am Ende vielleicht so lange, dass es gar nicht rechtzeitig fertig wird. 

 

Vielleicht schaust Du erstmal, wie sich das Script, was Du bis jetzt hast, in der Praxis bewährt. Und in kurzer Zeit hast Du genug Powershell gelernt und kannst es entweder erweitern oder einfach ein zweites bauen, mit leicht angepassten Bedingungen. ;-)

 

Link zu diesem Kommentar
vor 4 Stunden schrieb BOfH_666:

Soll das heißen, Du glaubst, dass ich meine Kenntnisse aus diesen beiden Quellen erhalten habe? ;-)  ... Du bist ja putzig ... sagen wir einfach "Ich mache das schon lange genug, um ein wenig Erfahrung angehäuft zu haben.". :D :cool:

:lol2: Nein, das ist mir schon klar. 

 

Ja, muss da einfach erstmal bei 0 anfangen. Ist nur eben immer so eine Sache. Aber jetzt habe ich mal ein Skript mit dem ich arbeiten kann. Das werde ich dann auch als Grundlage nutzen und weiter daran tüfteln. 

 

Wie schon gesagt, tausend Dank für deine Mühe!!! :thumb1::thumb1::thumb1:

Link zu diesem Kommentar
vor 8 Stunden schrieb noobi:

:lol2: Nein, das ist mir schon klar. 

 

Ja, muss da einfach erstmal bei 0 anfangen. Ist nur eben immer so eine Sache. Aber jetzt habe ich mal ein Skript mit dem ich arbeiten kann. Das werde ich dann auch als Grundlage nutzen und weiter daran tüfteln. 

 

Wie schon gesagt, tausend Dank für deine Mühe!!! :thumb1::thumb1::thumb1:

Olaf hat wie ich und jetzt Du genau da angefangen - bei Null. Irgendwann kam der erste Computer, irgenwann kam die erste Skriptsprache. Bei mir damals Basic auf dem C64, dann Rexx und Batch, dann VBScript, dann Powershell. Spielt aber keine Rolle, irgendwann ist immer Stunde 0.

 

Du hast heutzutage - im Gegensatz zumindest von mir damals - den Vorteil, daß es Internet gibt. 1985 (C64 Basic) war da noch nicht viel damit, und 1995 (OS/2 Rexx) auch nicht. Also nutze die Ressourcen, die Dir frei zur Verfügung stehen :-) Und wenn Du an was KONKRET scheiterst, dann helfe ich gerne weiter. Olaf ist da etwas freizügiger, er hat wohl mehr Zeit für Forumsupport reserviert als ich :D

 

Und nein, das ist jetzt keine Schelte, auch wenn Du das so auffassen könntest. Dein Schlußsatz ehrt Dich - hört man selten genug inzwischen, daß sich jemand so wie Du tatsächlich mal bedankt. Vielen Dank auch im Namen aller anderen hier im Forum dafür :thumb1: Mein Kommentar richtet sich nur an Deine Aussage "erstmal bei 0 anfangen. Ist immer so eine Sache". Das ware es schon immer, und wer dann mal bei 1 ankam, hat es oft auch bis 100 geschafft :D Also dranbleiben :handrechts: 100 erreichen.

 

Link zu diesem Kommentar

Moin moin, 

 

das Forum ist echt genial, danke für eure Kommentare. :-)

vor 16 Stunden schrieb Sunny61:

Zusätzlich hilft natürlich auch eine vernünftige Entwicklungsumgebung. Visual Studio Code ist kostenlos und hilft ungemein beim täglichen Scripten.

Ja, mit Visual Studio Code werde ich das mal testen, hatte das jetzt mit PowerShell ISE bearbeitet, habe aber schon Intellisense alla Visual Studio vom .NET vermisst. 

 

vor 16 Stunden schrieb BOfH_666:

...  und es sollte natürlich auch nicht heißen, dass Du hier nicht mehr fragen darfst ... auch zu diesem Thema/Script - jederzeit - dafür sind wir alle hier. Es macht uns ja auch selber Spaß  ;-)  

Ja, ich werde auch weiterhin mit meinen Fragen hier anklopfen :D

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...