vbs inputbox eingabe in batch einfügen
zuerstmal sry wenn das wo falsch drinnen ist!
also ich kenn mich mit vbs noch nicht so gut aus aber ich fang mal an
ich öffne eine batch datei, die öffnet zb. ein vbs inputbox fenster (zb. geben sie ihr alter ein)
danach wird die zahl (zb. 53) in der batch an einer bestimmten zeile eingefügt!
danke schonmal und nochmal sry für doppelpost/falsches unterforum/etc..
lg
also ich kenn mich mit vbs noch nicht so gut aus aber ich fang mal an
ich öffne eine batch datei, die öffnet zb. ein vbs inputbox fenster (zb. geben sie ihr alter ein)
danach wird die zahl (zb. 53) in der batch an einer bestimmten zeile eingefügt!
danke schonmal und nochmal sry für doppelpost/falsches unterforum/etc..
lg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 104777
Url: https://administrator.de/forum/vbs-inputbox-eingabe-in-batch-einfuegen-104777.html
Ausgedruckt am: 29.12.2024 um 01:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo ConsTricTa und willkommen im Forum!
Dein Batch könnte etwa so aussehen:
Das Script für die "InputBox" wird im Batch selbst erzeugt - so muss nur eine Datei verwaltet / weiter gegeben werden.
Da das Script mit Parametern (Text, Fenstertitel, Vorgabewert - immer alle drei Parameter übergeben!) aufgerufen wird, kann es für die verschiedensten Eingaben verwendet werden.
Eine Kontrolle der Eingabe könnte im Script selbst erfolgen, im obigen Beispiel wird aber im Batch geprüft, ob ein nicht leerer (ein Leerzeichen genügt allerdings schon) Vorname eingegeben wurde - anderenfalls wird erneut zur Eingabe aufgefordert.
Das jedem Scriptaufruf vorangestellte
sorgt dafür, dass nach dem Ablauf des Scripts die Eingabe in der Variable steht oder die Variable "not defined" ist.
Grüße
bastla
zuerstmal sry wenn das wo falsch drinnen ist!
Kein Beinbruch - solltest Du selbst nach "Entwicklung / Programmiersprachen / Batch & Shell" verschieben können ...Dein Batch könnte etwa so aussehen:
@echo off & setlocal
set In=%temp%\GetInput.vbs
>%In% echo Set args=WScript.Arguments:WScript.Echo InputBox(args(0), args(1), args(2))
set "Alter=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte geben Sie Ihr Alter in Jahren ein!" "Alterseingabe" ""') do set "Alter=%%i"
:Loop
set "Vorname=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte geben Sie Ihren Vornamen ein!" "Vorname?" "Anonym"') do set "Vorname=%%i"
If not defined Vorname goto :Loop
echo Ihr Vorname lautet "%Vorname%" und Sie sind %Alter% Jahre alt.
Da das Script mit Parametern (Text, Fenstertitel, Vorgabewert - immer alle drei Parameter übergeben!) aufgerufen wird, kann es für die verschiedensten Eingaben verwendet werden.
Eine Kontrolle der Eingabe könnte im Script selbst erfolgen, im obigen Beispiel wird aber im Batch geprüft, ob ein nicht leerer (ein Leerzeichen genügt allerdings schon) Vorname eingegeben wurde - anderenfalls wird erneut zur Eingabe aufgefordert.
Das jedem Scriptaufruf vorangestellte
set "Variable="
Grüße
bastla
Hallo ConsTricTa!
Das VBScript sieht so aus:
Hier werden alle verwendeten Elemente als Argumente (nummeriert ab Index 0 für das erste Argument) beim Aufruf "mitgeliefert" - für die Eingabe des Vornamens sähe das praktisch so aus:
Durch das "WScript.Echo" wird die Eingabe nicht erst in einer VBS-Variablen gespeichert, sondern gleich wieder ausgegeben - so kann sie der Batch dann übernehmen.
In diesem Fall würde an den Batch die Länge des eingegebenen Vornamens (als Zeichenanzahl), ein Komma als Trennzeichen sowie der Vorname in Großbuchstaben zurückgegeben, wofür der Aufruf in Batch dann etwa so aussehen müsste:
Anmerkungen:
Die Variable %Lang% wird auf jeden Fall einen Wert erhalten (wenn nichts eingegeben wurde, ist die Länge eben 0), daher muss sie nicht unbedingt vorweg gelöscht werden.
Der Vorname könnte aus mehreren Wörtern bestehen und sogar das Trennzeichen "," enthalten, da in der "for"-Schleife durch das "1*" festgelegt ist, dass nur das erste Trennzeichen zu beachten ist - dadurch wird der Teil davor in die Laufvariable %%i und der gesamte Teil nach diesem ersten Trennzeichen (als Einheit) in %%j gesetzt.
Grüße
bastla
Das VBScript sieht so aus:
Set args=WScript.Arguments
WScript.Echo InputBox(args(0), args(1), args(2))
WScript.Echo InputBox("Bitte geben Sie Ihren Vornamen ein!","Vorname?","Anonym")
könntest du mir nochmal erklären was genau die befehle für so ein fenster sind?
Eigentlich ist nur genau diese eine Zeile dafür erforderlich. Wolltest Du im VBScript noch mehr mit der Eingabe anstellen (auswerten, umformatieren), dann etwa so:Vorname=InputBox("Bitte geben Sie Ihren Vornamen ein!","Vorname?","Anonym")
WScript.Echo Len(Vorname)&","&UCase(Vorname)
set "Vorname=" & for /f "tokens=1* delims=," %%i in ('cscript //nologo %In%') do (set "Lang=%%i" & set "Vorname=%%j")
Die Variable %Lang% wird auf jeden Fall einen Wert erhalten (wenn nichts eingegeben wurde, ist die Länge eben 0), daher muss sie nicht unbedingt vorweg gelöscht werden.
Der Vorname könnte aus mehreren Wörtern bestehen und sogar das Trennzeichen "," enthalten, da in der "for"-Schleife durch das "1*" festgelegt ist, dass nur das erste Trennzeichen zu beachten ist - dadurch wird der Teil davor in die Laufvariable %%i und der gesamte Teil nach diesem ersten Trennzeichen (als Einheit) in %%j gesetzt.
Grüße
bastla