Kellerbräune Geschrieben 5. Juni 2019 Teilen Geschrieben 5. Juni 2019 Hi, ich habe folgendes Problem, dass ich in Powershell keine richtigen Eingaben und Ausgaben zu meinen Datensätzen erhalte. Lt. Aufgabe: "Eingabe von zwei Namen + Geburtsdatum - Ausgabe des Namen vom früheren Geburtstag. Dieses möchte ich jedoch um eine Abfrage des Kennworts sowie dem Wohnort ergänzen. In Powershell ISE habe ich soweit Read-Host -Prompt "Bitte geben Sie Ihren Namen ein!" Read-Host "Bitte geben Sie ihr Kennwort ein!" -AsSecureString Das klappt soweit, doch wie ergänze ich, die Angaben um die zweite Person, welche mit Geburstagsdatum verglichen wird, sodass die erste Rausfällt? Ich wollte das ganze mit IF verbinden (Wenn person X älter ist, als Y, dann gebe X aus). Habt ihr einen Tipp? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Fisi2020 Geschrieben 5. Juni 2019 Teilen Geschrieben 5. Juni 2019 Zu dem Thema Datum einlesen und Vergleichsoperatoren in Powershell gibt es einige Resourcen im Internet. Beispiel Datum einlesen: https://stackoverflow.com/questions/13074924/how-to-enter-date-and-time-for-a-user-on-one-line Die einzige Frage die sich dann noch stellt ist ob du mit CustomObject oder einfach nur Variablen arbeiten willst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Fisi2020 Geschrieben 12. Juni 2019 Teilen Geschrieben 12. Juni 2019 Da ich selbst noch kein Datetime in Powershell benutzt habe, habe ich mal ein kleines Programm geschrieben welches Name + Datum einliest und den Unterschied zwischen dem Alter angibt. $benutzer1 = @{ "Name" = ""; "Datum" = [datetime]; } $benutzer1.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein" do { $date1 = Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein" $date1 = $date1 -as [datetime] } while ($date1 -isnot [datetime]) $benutzer1.Datum = $date1 $benutzer2 = @{ "Name" = ""; "Datum" = [datetime]; } $benutzer2.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein" do { $date2 = Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein" $date2 = $date2 -as [datetime] } while ($date2 -isnot [datetime]) $benutzer2.Datum = $date2 $span = [datetime]::Now - $benutzer1.Datum $age1 = New-Object DateTime -ArgumentList $span.Ticks Write-Host $benutzer1.Name "ist $($age1.Year -1) Jahre, $($age1.Month -1) Monate und $($age1.Day) Tage alt" $span = [datetime]::Now - $benutzer2.Datum $age2 = New-Object DateTime -ArgumentList $span.Ticks Write-Host $benutzer2.Name "ist $($age2.Year -1) Jahre, $($age2.Month -1) Monate und $($age2.Day) Tage alt" $vergleich = $benutzer1.Datum, $benutzer2.Datum | Measure-Object -Maximum -Minimum $span = $vergleich.Maximum - $vergleich.Minimum $difference = New-Object DateTime -ArgumentList $span.Ticks if ($benutzer1.Datum -lt $benutzer2.Datum) { $benutzer1.Name + " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " + $benutzer2.Name } else { $benutzer2.Name + " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " + $benutzer1.Name } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 _n4p_ Geschrieben 13. Juni 2019 Teilen Geschrieben 13. Juni 2019 Oder etwas kürzer function alter($benutzer) { $age = New-Object DateTime -ArgumentList (New-TimeSpan -End (Get-Date) -Start $benutzer.geb).Ticks Write-Host $benutzer.Name "ist $($age.Year -1) Jahre, $($age.Month -1) Monate und $($age.Day) Tage alt" } function eingabe() { $benutzer = new-object Benutzer $benutzer.Name = Read-Host -Prompt "Bitte geben Sie Ihren Namen ein" do { $benutzer.geb = (Read-Host -Prompt "Bitte geben Sie Ihr Geburtsdatum ein") -as [datetime] } while ($benutzer.geb -isnot [datetime]) return $benutzer } $benutzer1 = eingabe($null) $benutzer2 = eingabe($null) alter($benutzer1) alter($benutzer2) $vergleich = $benutzer1.geb, $benutzer2.geb | Measure-Object -Maximum -Minimum $difference = New-Object DateTime -ArgumentList ($vergleich.Maximum - $vergleich.Minimum).Ticks if ($benutzer1.geb -lt $benutzer2.geb) { $aelter = $benutzer1 $juenger = $benutzer2 } else { $aelter = $benutzer2 $juenger = $benutzer1 } Write-Host $aelter.Name " ist $($difference.Year - 1) Jahre, $($difference.Month -1) Monate und $($difference.Day -1) Tage älter als " $juenger.Name Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Frage
Kellerbräune
Hi,
ich habe folgendes Problem, dass ich in Powershell keine richtigen Eingaben und Ausgaben zu meinen Datensätzen erhalte.
Lt. Aufgabe: "Eingabe von zwei Namen + Geburtsdatum - Ausgabe des Namen vom früheren Geburtstag.
Dieses möchte ich jedoch um eine Abfrage des Kennworts sowie dem Wohnort ergänzen.
In Powershell ISE habe ich soweit
Read-Host -Prompt "Bitte geben Sie Ihren Namen ein!"
Read-Host "Bitte geben Sie ihr Kennwort ein!" -AsSecureString
Das klappt soweit, doch wie ergänze ich, die Angaben um die zweite Person, welche mit Geburstagsdatum verglichen wird, sodass die erste Rausfällt?
Ich wollte das ganze mit IF verbinden (Wenn person X älter ist, als Y, dann gebe X aus).
Habt ihr einen Tipp?
Link zu diesem Kommentar
Auf anderen Seiten teilen
3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.