Zum Inhalt wechseln


Foto

Powershell Daten verschieben und umbenennen


  • Bitte melde dich an um zu Antworten
8 Antworten in diesem Thema

#1 Highlyeducatedmen

Highlyeducatedmen

    Newbie

  • 18 Beiträge

 

Geschrieben 26. September 2017 - 07:45

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 von Highlyeducatedmen, 26. September 2017 - 07:47.


#2 Dr.Melzer

Dr.Melzer

    Moderator

  • 26.260 Beiträge

 

Geschrieben 26. September 2017 - 08:17

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?


Never argue with an idíot, they drag you down to their level and beat you with experience!

#3 Highlyeducatedmen

Highlyeducatedmen

    Newbie

  • 18 Beiträge

 

Geschrieben 26. September 2017 - 08:54

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 :-)



#4 MurdocX

MurdocX

    Board Veteran

  • 575 Beiträge

 

Geschrieben 26. September 2017 - 09:44

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...teien-ausgeben/


Mit freundlicher Unterstützung
Jan


#5 Highlyeducatedmen

Highlyeducatedmen

    Newbie

  • 18 Beiträge

 

Geschrieben 26. September 2017 - 09:56

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



#6 MurdocX

MurdocX

    Board Veteran

  • 575 Beiträge

 

Geschrieben 26. September 2017 - 10:14

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". 


  • Highlyeducatedmen gefällt das

Mit freundlicher Unterstützung
Jan


#7 Highlyeducatedmen

Highlyeducatedmen

    Newbie

  • 18 Beiträge

 

Geschrieben 26. September 2017 - 10:44

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



#8 Dukel

Dukel

    Board Veteran

  • 9.298 Beiträge

 

Geschrieben 26. September 2017 - 10:56

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.


  • Highlyeducatedmen gefällt das

Stop making stupid people famous.


#9 Highlyeducatedmen

Highlyeducatedmen

    Newbie

  • 18 Beiträge

 

Geschrieben 27. September 2017 - 10:06

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:  :)