Jump to content
  • 0
Melde dich an, um diesem Inhalt zu folgen  

Powershell - Frage zu Eingabe und Ausgabe von Personendaten

Frage

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? 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

3 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
  • 0

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
}

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
  • 0

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

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung