Forum: PC-Programmierung Powershell (Get-Date)


von Matthias S. (mat-sche)


Lesenswert?

Liebes Forum,

leider habe ich nicht die Erfahrung und Kenntnisse in der Powershell mir 
über ein serielle Schnittstelle das Datum und die Zeit auszugeben, die 
ich dann in meinen µC einlesen möchte.
Anbei das Scipt, was ich schon benutze, und in dem ich ein Problem mit 
der Übertragung der Jahreszahl habe.
Im Grund läuft die Übertragung ja, nur ich benötige das Jahr als Byte, 
also nur die beiden letzten Zahlen.
Wie muss der Befehl

$port.Write((Get-Date-format yy)."year");

so formartiert werden, dass er mir nur die 18 von dem jetzigen Jahr 
ausgibt? In der Formatierung geht es leider nicht :(

 $ErrorActionPreference = "SilentlyContinue" #Fehlermeldungen auschalten

$port= new-Object System.IO.Ports.SerialPort COM46,115200,None,8,one 
#Comport definieren

$port.open() #Serielle verbindung starten
"Auf Mikrocontroller warten..."
$port.write("U")
$port.write( "`r")
Do{ #Mit µC synchronisieren, Solange lesen, bis Zeichen von µC bekommen
$test = $port.ReadLine()

}
Until ($test="1")
cls

"Signal erhalten!"

"beginne übertragung der Uhrzeit..."
""

Start-Sleep -Milliseconds 100 #100ms warten
$port.Write() #Testzeile schreiben

$port.Write((Get-Date-format yy)."year");
$port.Write("`r")
$port.Write((Get-Date).month);
$port.Write("`r")
$port.Write((Get-Date).day);
$port.Write("`r")
$port.Write((Get-Date).hour);
$port.Write("`r")
$port.write((get-date).minute);
$port.Write("`r")
$port.write((get-date).second);
$port.write( "`r")
$port.close()
Start-Sleep -Milliseconds 100

"Zeit erfolgreich übertragen!" #Meldung ausgeben, dass die Zeit 
übertragen wurde
" " #Leerzeile
Write-Host "Beliebiege Taste zum Beenden drücken ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") #Wenn eine 
beliebige Taste gedrückt wird, wird das Programm beendet

von Matthias S. (mat-sche)


Lesenswert?

up

von Roger S. (edge)


Lesenswert?

1
(Get-Date -UFormat %y)

Cheers, Roger

von Matthias S. (mat-sche)


Lesenswert?

Roger S. schrieb:
> (Get-Date -UFormat %y)

Hi Roger,

vielen DAnk für Deine Hilfe, leider geht es so nicht.
Im Moment sende ich über seriell so:
* $port.Write((Get-Date).hour);
aber mit
* $port.Write(Get-Date -UFormat %y)
bekomme ich in der PS eine Fehlermeldung.
Wie muss der korrekte Eintrag heißen?

von Roger S. (edge)


Lesenswert?

1
$port.Write((Get-Date -UFormat %y))

Cheers, Roger

von Matthias S. (mat-sche)


Lesenswert?

Recht vielen Dank, jetzt funst es so wie es soll!
Grüße Matthias

von Roger S. (edge)


Lesenswert?

Noch ein Tip am Rande:
Es kann durchaus mal vorkommen dass die Fragmente aller Get-Date nicht 
zueinander passen.
Besser, nutze den Format-String auf einem einzigen Get-Date.
1
$port.Write((Get-Date -UFormat "%y`r%m`r%d`r%H`r%M`r%S`r"))

Cheers, Roger

von Matthias S. (mat-sche)


Lesenswert?

Hi Roger,

wie kann ich mir den Wochentag als zahl ausgeben lassen?
Also Montag = 1
Dienstag = 2
.
.
.
 Danke fü Deine Hilfe!

von Cyblord -. (Gast)


Lesenswert?

Matthias S. schrieb:
> Hi Roger,
>
> wie kann ich mir den Wochentag als zahl ausgeben lassen?
> Also Montag = 1
> Dienstag = 2
> .
> .
> .
>  Danke fü Deine Hilfe!

Wie wärs wenn du deine Hausuafgaben selbst erledigst oder selbst einen 
Blick in die Doku wirfst?

von Matthias S. (mat-sche)


Lesenswert?

Abradolf L. schrieb:
> Wie wärs wenn du deine Hausuafgaben selbst erledigst oder selbst einen
> Blick in die Doku wirfst?

Wie wäre es bei IHNEN mit einer sinvolle Antwort???

.....Man, immer diese schwachsinnigen!!!!

"sorry" musste mal sein!

von Roger S. (edge)


Lesenswert?

Matthias S. schrieb:
> wie kann ich mir den Wochentag als zahl ausgeben lassen?
> Also Montag = 1
1
(Get-Date -UFormat %u)

siehe: 
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-date

Cheers, Roger

von Matthias S. (mat-sche)


Lesenswert?

Danke Roger!

Ich habe das Script im Netz gefunden und so gut versucht, dieses für 
mich abzuwandeln. Von Powershell hab ich keinen Blassen. Und noch 
dazulernen kann ich nur durch Hilfen wie von Dir!

Vielen Dank!

von Cyblord -. (Gast)


Lesenswert?

Matthias S. schrieb:
> Von Powershell hab ich keinen Blassen.

Dann wirds mal Zeit die Doku oder ein Buch dazu zu lesen, wenn das 
Arbeits- oder Studieninhalt ist.

Matthias S. schrieb:
> Und noch
> dazulernen kann ich nur durch Hilfen wie von Dir!

Nein, dadurch lernst du garnichts. Du sparst dir vermeintlich nur Zeit, 
weil du es dann nicht selbst machen musst.

von Matthias S. (mat-sche)


Lesenswert?

Abradolf L. schrieb:
> Dann wirds mal Zeit die Doku oder ein Buch dazu zu lesen, wenn das
> Arbeits- oder Studieninhalt ist.

:) nein es ist für Hobbysachen

Abradolf L. schrieb:
> Nein, dadurch lernst du garnichts. Du sparst dir vermeintlich nur Zeit,
> weil du es dann nicht selbst machen musst.

alles zu seiner Zeit. Und ja ich habe mir Zeit gespart denn ich habe 
jetzt nicht die Prio mich noch mit PS zu beschäftigen.
Manchmal ist es halt so!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.