Highlyeducatedmen 0 Geschrieben 26. September 2017 Melden Teilen Geschrieben 26. September 2017 (bearbeitet) Hallo Ich bin Powershell Neuling und muss ein Script schreiben das die unten angeführten Bedingungen erfüllt. Ich habe versucht dies zu machen doch jetzt stehe ich an. Bitte um Hilfe, Fehler aufweisen und Tipps :rolleyes: #Wir haben einen Spirographen welcher seine Ergebnisse auf einen #lokalen Ordner ablegt. Da das Programm keinen Zugriff hat auf #diesen Ordner hat gehören die Daten verschoben. Die Aufgabe lautet baue ein #Script das alle Dateien im Ordner findet, danach umbennent in der Syntax aktuelles #Datum,Spirograph, Dateierstellungsdatum, Laufende Nummer #(Beispiel DDMMYY_Probant_DDMMYY_LFnr bzw. 010817_Spirograph_010817_01) danach sollte #das Ganze in einen anderen Ordner kopiert werden auf einen anderen Rechner, sprich #beachte Zugriffrechte. Zusätzlich sollte im selben Ordner wo der Spirograph hin #schreibt die Datei kopieren in den Ordner Archiv. Das gesamte Script muss Silent #ausgeführt werden und bei einem Fehler dies in einer Datei ausgeben, dazu überlege #dir wie man das automatisiert das diese Daten Zeitnah übertragen werden. $pfad = 'C:\Documents\TEST' $Files = Get-ChildItem -Path $Path -Recurse -Include *.txt foreach ($File in $Files){ $OldPath = $File.FullName $Date = get-date -format 'M.d.yyyy ' $OldDate = gci -file | select name,creationtime $NewName = $Date + ($OldPath.Substring($OldPath.Length - 7, 7)) + "$OldDate" + ' '; Rename-Item -Path $OldPath -NewName $NewName } $Copy = Get-ChildItem -Path $Path -Recurse -Include *.txt foreach ($File in $Copy){ Copy-Item $File C:\Documents\Test2 } Danke schon im vorhinein :) :jau: bearbeitet 26. September 2017 von Highlyeducatedmen Zitieren Link zu diesem Kommentar
Dr.Melzer 191 Geschrieben 26. September 2017 Melden Teilen Geschrieben 26. September 2017 Das sieht nach einer Testaufgabe aus... Wie weit bist du denn schon gekommen? Was hast du dir dazu schon für Gedanken gemacht? und Was genau ist deine Frage an uns? Zitieren Link zu diesem Kommentar
Highlyeducatedmen 0 Geschrieben 26. September 2017 Autor Melden Teilen Geschrieben 26. September 2017 Mein größtes Problem zur zeit ist das ich das Ersteller datum der Dateien brauch und diese in im geänderten namen ausgeben will wenn man mir dabei helfen könnte wär das super :-) Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 26. September 2017 Melden Teilen Geschrieben 26. September 2017 Mein größtes Problem zur zeit ist das ich das Ersteller datum der Dateien brauch und diese in im geänderten namen ausgeben will Bei diesem Problem wurde Dir doch vor 2 Tagen erfolgreich geholfen http://www.mcseboard.de/topic/211340-erstellungsdatum-von-dateien-ausgeben/ Zitieren Link zu diesem Kommentar
Highlyeducatedmen 0 Geschrieben 26. September 2017 Autor Melden Teilen Geschrieben 26. September 2017 ja dachte ich mir auch nur leider hat das nach ein paar Änderungen nicht mehr funktioniert auch nachdem ich den ausgangs zustand in dem es noch funktioniert hat wieder hergestellt hatte hat es nicht mehr funktioniert :( des halb dachte ich es findet hier jemand den(die) Fehler in meinem Script und könnte mir helfen :rolleyes: Mfg Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 26. September 2017 Melden Teilen Geschrieben 26. September 2017 Dein Problem ist das Verständnis der Objekte mit denen du jonglierst. Da fehlen Dir die Basics. Da jedes Objekt anderst ist, musst du dich jedes mal auch dem anpassen. Sollte Dir nun jemand die Lösung posten, dann bringt dich das m. M. nach nicht weiter und du landest bei der kleinsten Veränderung wieder hier. Ein guter Anfang ist immer sich mal mit einem Befehl und dessen Ausgabe genauer auseinanderzusetzen. Get-ChildItem -Path "C:\Windows" -File | Get-Member "Get-Member" ist hierfür ein wichtiger Befehl für Dich um die "Eigenschaften und Funktionen" eines Objektes abzufragen. Das Ergebnis ist "System.IO.FileInfo". 1 Zitieren Link zu diesem Kommentar
Highlyeducatedmen 0 Geschrieben 26. September 2017 Autor Melden Teilen Geschrieben 26. September 2017 Danke Das Problem ist nur meistens weis ich noch nicht genau welche befehl überhaupt in frage kommen und dann muss ich diese erst einmal finden. Und danke für den tipp ich werde mir den Befehl genauer ansehen Mfg Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 26. September 2017 Melden Teilen Geschrieben 26. September 2017 Neben dem lernen der Grundlagen, was dir ja schon nahegelegt wurde, solltest du dich langsam an das Problem tasten. Teil das Programm auf und mach ein Schritt nach dem anderen. Du brauchst erstmal die einzelnen Teile der Datei: aktuelles Datum,Spirograph, Dateierstellungsdatum, Laufende Nummer (Beispiel DDMMYY_Probant_DDMMYY_LFnr bzw. 010817_Spirograph_010817_01) $date = Get-Date -Format 'ddMMyy' $spirograph = $file.BaseName $fileDate = Get-Date $file.CreationTime -f 'ddMMyy' $i = # Woher nimmst du diese? Muss die je durchlauf eindeutig sein? Dann erstelle einen Zähler in der Schleife. Dann kannst du den neuen Dateinamen zusammenbauen. $newName = "$date_$spirograph_$fileDate_$i" usw. 1 Zitieren Link zu diesem Kommentar
Highlyeducatedmen 0 Geschrieben 27. September 2017 Autor Melden Teilen Geschrieben 27. September 2017 Danke Und ja bin jetzt auch selbst drauf gekommen das ich wenn ich es schritt für schritt mache schneller vorankomme. Danke für eure tolle unterstützung :jau: :thumb1: :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.