mikrocontroller.net

Forum: PC-Programmierung Powershell (Get-Date)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
up

Autor: Roger S. (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Get-Date -UFormat %y)

Cheers, Roger

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Roger S. (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$port.Write((Get-Date -UFormat %y))

Cheers, Roger

Autor: Matthias S. (mat-sche)
Datum:

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

Autor: Roger S. (edge)
Datum:

Bewertung
0 lesenswert
nicht 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.
$port.Write((Get-Date -UFormat "%y`r%m`r%d`r%H`r%M`r%S`r"))

Cheers, Roger

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Roger,

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

Autor: Cyblord -. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Roger S. (edge)
Datum:

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

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

Cheers, Roger

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Cyblord -. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias S. (mat-sche)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.