In einer Funktion ermittelten Wert einer Stringvariablen im HauptScript weiter nutzen
Guten Morgen,
ich habe eine Funktion erstellt, die zu einer Eingabe auffordert und nur 6-stellige Eingaben oder die Eingabetaste zulässt.
Der in der Funktion ermittelte Eingabewert soll an das Hauptscript übergeben und weiter genutzt werden.
Die Funktion macht zwar was sie soll. Der Eingabewert ist jedoch im Hauptscript nicht mehr verfügbar.
Trotz vieler Versuche mit unterschiedlichen Parametern gelingt es mir nicht den Eingabestring im Hauptscript nutzbar zu machen.
Vielen Dank für die Hilfe im Voraus
Haupt Script----------------------------
Clear-Host
--------------WKN eingenen ---------------------------------------------------
function abfrageWKN
{$valid_values = "6","0"
do {
$eingabe = Read-Host "Bitte die WKN (6 Stellen) eingeben und (Enter)!
bei Eingabe (Enter) werden alle Wertpapiere aktualisiert"
$a=$eingabe.Length
if ($a -notin $valid_values){
write-host "Eingabe fehlerhaft! Bitte 6-Stellen eingeben" -F Red
}
}until($a -in $valid_values)
write-host "Script wird fortgesetzt Bitte warten!!!"
}
funktion abfrageWKN starten-------------
abfrageWKN
weiter mit dem Haupt Script
write-host $eingabe
write-host "fehler"
#--- Warten---
Start-Sleep -m 5000
ich habe eine Funktion erstellt, die zu einer Eingabe auffordert und nur 6-stellige Eingaben oder die Eingabetaste zulässt.
Der in der Funktion ermittelte Eingabewert soll an das Hauptscript übergeben und weiter genutzt werden.
Die Funktion macht zwar was sie soll. Der Eingabewert ist jedoch im Hauptscript nicht mehr verfügbar.
Trotz vieler Versuche mit unterschiedlichen Parametern gelingt es mir nicht den Eingabestring im Hauptscript nutzbar zu machen.
Vielen Dank für die Hilfe im Voraus
Haupt Script----------------------------
Clear-Host
--------------WKN eingenen ---------------------------------------------------
function abfrageWKN
{$valid_values = "6","0"
do {
$eingabe = Read-Host "Bitte die WKN (6 Stellen) eingeben und (Enter)!
bei Eingabe (Enter) werden alle Wertpapiere aktualisiert"
$a=$eingabe.Length
if ($a -notin $valid_values){
write-host "Eingabe fehlerhaft! Bitte 6-Stellen eingeben" -F Red
}
}until($a -in $valid_values)
write-host "Script wird fortgesetzt Bitte warten!!!"
}
funktion abfrageWKN starten-------------
abfrageWKN
weiter mit dem Haupt Script
write-host $eingabe
write-host "fehler"
#--- Warten---
Start-Sleep -m 5000
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1137644362
Url: https://administrator.de/contentid/1137644362
Ausgedruckt am: 05.12.2024 um 02:12 Uhr
4 Kommentare
Neuester Kommentar
Moin,
zuerst eine Bitte: Stelle deinen Code bitte in den zur Verfügung stehenden Code-Tags ein. Das macht es deutlich einfacher zu lesen.
Zu deinem eigentlichen Problem:
Deine Funktion liefert keinen Wert zurück.
Dann setzt du in deinem Haupt-Script entsprechend deine Variable:
Und dann kannst du damit weiterarbeiten.
VG
zuerst eine Bitte: Stelle deinen Code bitte in den zur Verfügung stehenden Code-Tags ein. Das macht es deutlich einfacher zu lesen.
Das sieht dann übrigens so aus.
Zu deinem eigentlichen Problem:
Deine Funktion liefert keinen Wert zurück.
function abfrageWKN
{$valid_values = "6","0"
do {
$eingabe = Read-Host "Bitte die WKN (6 Stellen) eingeben und (Enter)!
bei Eingabe (Enter) werden alle Wertpapiere aktualisiert"
$a=$eingabe.Length
if ($a -notin $valid_values){
write-host "Eingabe fehlerhaft! Bitte 6-Stellen eingeben" -F Red
}
}until($a -in $valid_values)
write-host "Script wird fortgesetzt Bitte warten!!!"
return $eingabe
}
Dann setzt du in deinem Haupt-Script entsprechend deine Variable:
$WKN=abfrageWKN()
Und dann kannst du damit weiterarbeiten.
VG
Wenn du schon eine Funktion schreibst dann solltest du üblicherweise auch einen Wert zurückgeben, denn du deklarierst deine Variable nur in der Funktion, außerhalb ist sie deswegen nicht verfügbar. Man kann zwar mittels Variable-Scope Modifier ($global:var / $script:var) Variablen auch außerhalb des eigenen Scopes ändern, ist aber bad practice.
Grundlagen zum Variable-Scope z.B. hier lesen
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
https://www.windowspro.de/script/gueltigkeitsbereich-scope-von-variablen ...
p.s. Bitte doch Codetags benutzen (Icon </> in der Symbolleiste)
Grundlagen zum Variable-Scope z.B. hier lesen
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
https://www.windowspro.de/script/gueltigkeitsbereich-scope-von-variablen ...
function abfrageWKN{
do {
$eingabe = Read-Host "Bitte die WKN (6 Stellen) eingeben und (Enter)! bei Eingabe (Enter) werden alle Wertpapiere aktualisiert"
if ($eingabe.length -ne 6){
write-host "Eingabe fehlerhaft! Bitte 6-Stellen eingeben" -F Red
}
}until($eingabe.length -eq 6)
return $eingabe
}
$wkn = abfrageWKN
write-host "WKN: $wkn"
p.s. Bitte doch Codetags benutzen (Icon </> in der Symbolleiste)
Guckst du hier Powershell Leitfaden für Anfänger