Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

vbs inputbox eingabe in batch einfügen

Frage Entwicklung Batch & Shell

Mitglied: ConsTricTa

ConsTricTa (Level 1) - Jetzt verbinden

26.12.2008, aktualisiert 27.12.2008, 9162 Aufrufe, 5 Kommentare

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
Mitglied: bastla
26.12.2008 um 23:15 Uhr
Hallo ConsTricTa und willkommen im Forum!

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:
01.
@echo off & setlocal 
02.
set In=%temp%\GetInput.vbs 
03.
>%In% echo Set args=WScript.Arguments:WScript.Echo InputBox(args(0), args(1), args(2)) 
04.
 
05.
set "Alter=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte geben Sie Ihr Alter in Jahren ein!" "Alterseingabe" ""') do set "Alter=%%i" 
06.
 
07.
:Loop 
08.
set "Vorname=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte geben Sie Ihren Vornamen ein!" "Vorname?" "Anonym"') do set "Vorname=%%i" 
09.
If not defined Vorname goto :Loop 
10.
echo Ihr Vorname lautet "%Vorname%" und Sie sind %Alter% Jahre alt.
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
set "Variable="
sorgt dafür, dass nach dem Ablauf des Scripts die Eingabe in der Variable steht oder die Variable "not defined" ist.

Grüße
bastla
Bitte warten ..
Mitglied: ConsTricTa
27.12.2008 um 13:34 Uhr
ok danke!
kenn mich leider noch zu wenig aus um das alles zu verstehen
will hier auch ned lang rumnerven aber könntest du mir nochmal erklären was genau die befehle für so ein fenster sind?

und gibts hier irg.wo schon einen thread wo solche befehle,etc. erklärt werden?
danke nochmal
lg
Bitte warten ..
Mitglied: bastla
27.12.2008 um 14:00 Uhr
Hallo ConsTricTa!

Das VBScript sieht so aus:
01.
Set args=WScript.Arguments 
02.
WScript.Echo InputBox(args(0), args(1), args(2))
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:
01.
WScript.Echo InputBox("Bitte geben Sie Ihren Vornamen ein!","Vorname?","Anonym")
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.

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:
01.
Vorname=InputBox("Bitte geben Sie Ihren Vornamen ein!","Vorname?","Anonym") 
02.
WScript.Echo Len(Vorname)&","&UCase(Vorname)
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:
set "Vorname=" & for /f "tokens=1* delims=," %%i in ('cscript //nologo %In%') do (set "Lang=%%i" & set "Vorname=%%j") 
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
Bitte warten ..
Mitglied: ConsTricTa
27.12.2008 um 15:44 Uhr
danke echt nett
werd das dann mal alles ausprobieren!
lg

EDIT:
vl. blöde frage aber %Alter% kann ich doch normalerweise für eine IF formel verwenden?! oder
(alter ist ja hier nur ein beispiel)
ich kriegs nämlich nicht hin
lg
Bitte warten ..
Mitglied: bastla
27.12.2008 um 16:09 Uhr
Hallo ConsTricTa!

%Alter% kann ich doch normalerweise für eine IF formel verwenden?!
Etwa so:
if %Alter% geq 18 goto :Volljaehrig
Die Vergleichsoperatoren findest Du in der Online-Hilfe (mit "if /?").

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Entwicklung
gelöst Mit Batch,VBS,Powershell Windows einrichten (1)

Frage von Justin98 zum Thema Entwicklung ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...