Powershell Script für Excel
#1
geschrieben 12. August 2016 - 11:45
Ich soll ein Script für Excel schreiben über Powershell.
Mein Problem ist das für jeden Tag Tabellen kriegen in csv Format wo Datum und Uhrzeit und die Überprüfungstyp im Name steht. Das Script was ich schreiben soll, soll immer auf das Aktuellste Datum mit zurzeit zugreifen, leider habe ich noch keine Idee und habe auch im Netz schon geschaut nach Scripts aber was ich gefunden habe kann ich nix mit anfangen vielleicht sagt euch das Script was .
$LastFile = *_DailyFile
$compareDate = (Get-Date).AddDays(-1)
$LastFileCaptured = Get-ChildItem -Recurse | Where-Object {$LastFile.LastWriteTime
-ge $compareDate}
Die Datei von mir heißt zb. 2016-07-31-09-16_S12_Sum_Komplett.csv
und am folge tag heißt es 2016-08-01-12-16_S12_Sum_Komplett.csv
Würde mich freuen wenn ihr mir helfen könnt.
Grüße Hamburg69
Anzeige
#2
geschrieben 12. August 2016 - 15:52
- Per Get-ChildItem die Dateien durchforsten (mit -Recurse nur, wenn Unterverzeichnisse auch da sind/durchsucht warden sollen)
- Die Chose durch Sort-Object filtern. Dabei mit -Property dasjenige Feld angeben, wonach sortiert warden soll; mit -Descending absteigend, ohne oder mit -Descending:$false aufsteigend
- Das Ergebnis nochmal in Select-Object reinfüttern und mit -First <n> (oder auch -Last <n>) die ersten (bzw letzten) n Treffer auswählen.
Zusammen also:
Get-ChildItem -Recurse -Path '*.csv' | Sort-Object -Property LastWriteTime -Descending:$true | Select-Object -First 1
Das würde Dir aus dem aktuellen Pfad diejenige CSV-Datei raussuchen, die zuletzt geschrieben wurde.
- Statt LastWriteTime als -Property geht ggf auch BaseName. Das ist der blanke Dateiname (ohne Pfad). So wie ich das lese, könntest Du den auch verwenden, bei selber Sortierung.
#3
geschrieben 15. August 2016 - 05:44
danke für die schnelle Antwort. Leider habe ich bei mir noch ein Fehler drin, er soll ja auf ein bestimmten Ordner zugreifen und dein bsp eingefügt aber glaube das ich es mir zu einfach gemacht habe und habe es das Wochenende ausprobiert und weiß nicht was ich genau ändern muss.
$quelle = 'D:\Excel\.csv'
$objExcel = New-Object -Com Excel.Application
$LastFile = *_DailyFile
$compareDate = (Get-Date).AddDays(-1)
$LastFileCaptured =Get-ChildItem -Recurse -Path '*.csv' |
Sort-Object -Property LastWriteTime -Descending:$true |
Select-Object -First 1
sry ist bestimmt einfach zu ändern aber ich komme leider nicht drauf
mfg
#4
geschrieben 15. August 2016 - 08:06
Dieser Beitrag wurde von Holger_N bearbeitet: 15. August 2016 - 08:07
#5
geschrieben 15. August 2016 - 08:36
So könntes passen:
$quelle = 'D:\Excel\*.csv' $objExcel = New-Object -Com Excel.Application $LastFile = *_DailyFile $compareDate = (Get-Date).AddDays(-1) $LastFileCaptured =Get-ChildItem -Recurse -Path '$quelle' | Sort-Object -Property LastWriteTime -Descending:$true | Select-Object -First 1
Unix won't hold your hand. You wanna shoot your foot, Unix reliably delivers the shot.
True Cloudstorage
#6
geschrieben 15. August 2016 - 08:58
und leider zeigt er mir ein Fehler bei
$LastFile = *_DailyFile
und wüsste nicht was ich noch eintragen könnte für , den anderen Fehler habe ich lösen können.
Dieser Beitrag wurde von Hamburg69 bearbeitet: 15. August 2016 - 09:08
#7
geschrieben 15. August 2016 - 10:31
Ich kann hier mangels Powershell nicht testen, aber es sieht so aus, als müssten alle Befehle in dem fraglichen Verzeichnis ausgeführt werden.
Füge mal vor dem $LastFile=... ein cd $quelle ein und mach die andere Änderung rückgängig
Unix won't hold your hand. You wanna shoot your foot, Unix reliably delivers the shot.
True Cloudstorage
#8
geschrieben 15. August 2016 - 10:56
PS ist OBJEKTorientiert. So Späße wie $x = *.txt geht damit nicht.
Stattdessen:
$variable = Get-ChildItem -Path '*.txt' -Recurse:<$true|$false>
#9
geschrieben 15. August 2016 - 12:31
gibt es zufällig ein Befehl das man was in Spalte D ist in Spalte A verschieben kann so dass die anderen nach rechts weiter rücken.
grüße
Dieser Beitrag wurde von Hamburg69 bearbeitet: 16. August 2016 - 14:04
- ← AdhocManager - Tester und Feedback gesucht
- Programmierung
- Prüfung 70-483: Programming in C# Microsoft: realistisch zu bestehen o →