Triviales Powershell Skript

CharlieScene

Lt. Junior Grade
Registriert
Juli 2016
Beiträge
382
Hallo Community,
ich wende mich an euch, da ich gerade mit einem Problemchen nicht weiterkomme. Es ist ein triviales Skript dass ich zwar für die Arbeit (gerade alle auf Schulung, sodass ich mir [Azubi] selber kleine Aufgaben gesucht habe), aber eher zu Übungszwecken schreiben möchte. Das ganze möchte ich mittels Powershell umsetzen:
Ziel: Wir schreiben Protokoll und kopieren dieses zu jeder Sitzung neu, benennen die Datein anschließend händisch um in "Aktuelles Datum Protokoll.txt". Diesen Vorgang möchte ich automatisieren (Skript läuft halt einmal pro Woche).

Was ich hinbekomme:

copy C:\Pfad\Datei.txt C:\NeuerPfad\
$Date = (Get-Date).ToString("dd_MM_yyyy")
ren C:\NeuerPfad\Datei.txt $Date" Datei.txt"

Wo es hapert:
Ich möchte ja logischerweise dass das Skript automatisch funktioniert, dazu müsste ich den Ordner wo diese Datein abgelegt sind nach dem CreationDate ordnen und dann das "jüngste" File in den oben genannten Ablauf übergeben. Hier komme ich nicht auf den grünen Zweig.
Das ganze übergebe ich am besten in eine Liste/Array, damit ich entsprechend sagen kann dass das "letzte" File kopiert werden soll, ist das richtig? Wenn ja, wie mache ich das?

$a = Get-Item . -include *.txt | Sort-Object -Property @{Expression={$_.CreationTime}; Ascending = $True}
$Auswahl = Select-Object($a) -Last 1

funktioniert leider nicht so wie ich es mir denke.

Ich bin absoluter Anfänger und komme in meiner Arbeitsumgebung leider zu selten dazu solche kleinen Aufgaben zu übernehmen. Vielleicht hat einer der Cracks beim morgendlichen Kaffee Lust und Zeit mir kurz auf die Sprünge zu helfen.

Viele Dank und einen schönen Tag!
 
Nitschi66 schrieb:
Ist dieses Datumsformat vorgeschrieben? Ich würde sonst immer yy_mm_dd empfehlen. Damit sortiert Windows das dann auch wirklich in der richtigen Reihenfolge. :)

Würde ich persönlich aus so empfehlen.

PowerShell:
Copy-Item (Get-Item .\* -Include *.txt | Sort-Object -Property CreationTime -Descending) (".\" + (Get-Date).ToString("yy_MM_dd") + ".txt")

Probiere das mal, ich denke danach suchst du.
Natürlich am besten durch deinen Pfad ersetzt, da du das Skript hoffentlich nicht dort speicherst.
 
Vielen Dank euch beiden! Das war leichter als ich dachte (fast unangenehm wie lange ich daran rumprobiert habe..), hätte ich selbst drauf kommen müssen!:D Werde das mit dem Datum mal so berücksichtigen :)
 
Zurück
Oben