motorcross
Goto Top

Wie kann man in Batch eine Eingabeaufforferung über eine vbs Datei grafisch darstellen

Hallo Administratoren,

ich hab mir einen Batchscript programmiert, der eine Eingabeaufforderung besitzt.
Diese möchte ich gern grafisch darstellen.
Ich habe schon gesehen wie man info Fenster über vbs programmieren kann.
Gibt es eine Möglichkeit Eingabeaufforderung grafisch darzustellen?
Gruß Motorcross

Content-Key: 136010

Url: https://administrator.de/contentid/136010

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: Berrnd
Berrnd 15.02.2010 um 19:21:56 Uhr
Goto Top
Hi,

falls Du mit "Eingabeaufforderung" eine einfache Abfrage, z. B. von einem String meinst, dies geht in VBScript ganz leicht:

Option Explicit

Dim MeineVariable
MeineVariable = InputBox("Gib was ein:")  

Gruß
Bernd
Mitglied: Motorcross
Motorcross 15.02.2010 um 19:29:56 Uhr
Goto Top
Hallo,
das sieht doch gar nicht so schlecht aus kann man das auch so hinbekommen das man zwei Eingabeaufforderungen in einem Fenster hat?
Und das man die Variablen in Batch übernehmen kann?
Gruß Motorcross
Mitglied: Berrnd
Berrnd 15.02.2010 um 19:36:41 Uhr
Goto Top
Hi,

zwei Textfelder in einem Abfragefenster geht bei VBS nicht.
Die Variablen kannst Du ja einfach als Aufrufparameter an die Batch übergeben (abruf in der Batch mit %1, %2, usw.)

Gruß
Bernd
Mitglied: Motorcross
Motorcross 15.02.2010 um 19:42:28 Uhr
Goto Top
Hallo,
kann ,man denn einstellen welche Knöpfe es gibt also ok oder abrechen?
Und dann wie geht das denn mit %1, %2...
Mitglied: Berrnd
Berrnd 15.02.2010 um 19:50:04 Uhr
Goto Top
Hi,

nein, auch die Buttons kann man in VBS nicht selbst definieren.

Zitat von @Motorcross:
Und dann wie geht das denn mit %1, %2...
Also, Du rufst deine Batch auf und übergiebst ein (oder mehrere) Variablen als Aufrufparameter:
C:\MeineBatch.bat MeineVariable1 MeineVariable2

In der Batch kannst Du dann die übergebenen Parameter mit %1, %2, usw. abrufen:
REM Beispielcode
SET VAR1=%1
SET VAR2=%2

Gruß
Bernd
Mitglied: Motorcross
Motorcross 15.02.2010 um 19:56:23 Uhr
Goto Top
Hallo,
kann man das auch so programmieren, dass wenn Abbrechen gedrückt wird, "j" in eine Variable definiert wird?
Mitglied: AxelHahn
AxelHahn 15.02.2010 um 20:00:47 Uhr
Goto Top
Hi,

Alternativ zu einem VB-Script - hier sind kleine Exe-Dateien, die einige einfache GUI-Abfragen ermöglichen (Nachrichtenbox, Eingabefelder, Dateiauswahl) - inkl. Beispielcode für deine Batch.
http://home.mnet-online.de/horst.muc/w32diald.htm

Zu mehreren Eingabefeldern mit VBScript gäbe es die Variante mit einer HTA-Applikation. Das setzt Wissen zu HTML und VBScript voraus.
Oder man compiliert sich seine gewünschte Anwendung mit Freepascal / C#/ ... aber ich denke, das führt eher in die falsche Richtung.

Viele Grüsse
Axel


EDIT: Link auf deutsche Seite
Mitglied: bastla
bastla 15.02.2010 um 20:09:50 Uhr
Goto Top
Hallo Motorcross!

Du könntest ja einmal ganz konkret beschreiben, was Du eigentlich haben möchtest ...

... bis dahin nur kurz zur Verwendung innerhalb eines Batches:
@echo off & setlocal
set "G=%temp%\GetInput.vbs"  
>"%G%" echo WScript.Echo InputBox("Gib was ein:")  

set Ein=
for /f "delims=" %%i in ('cscript //nologo "%G%"') do set "Ein=%%i"  
if not defined Ein echo Keine Eingabe (Abbruch) & goto :eof
echo Eingabe: %Ein%
Grüße
bastla
Mitglied: Berrnd
Berrnd 15.02.2010 um 20:10:46 Uhr
Goto Top
Hi,

ja, also wenn auf "Abbrechen" geklickt, wird nichts in die Variable geschrieben.
Es steht dann also ein Leerstring bzw. der letzte Wert in der Variablen.

Option Explicit

Dim MeineVariable
MeineVariable = InputBox("Gib was ein:")  

If MeineVariable = "" Then  
	MeineVariable = "j"  
End If

Gruß
Bernd
Mitglied: Biber
Biber 15.02.2010 um 20:14:59 Uhr
Goto Top
Moin Motorcross,

vielleicht zwei Abkürzungen für dich... Bernd- setzt glaube ich zuviel systematisches Herangehen voraus...

Abkürzung 1)

Du kannst beispielsweise in der Batchdatei (falls du wirklich Batch als Grundlage nehmen willst statt alles in VBS zusammenzuschroten) folgende mehrfach nutzbare VBScript-Zeile in eine .vbs-Datei schreiben:
:: ... in deiner bislang unveröffentlichen Batchdatei:
>%temp%vbinputbox.vbs echo wscript.echo(Inputbox(wscript.Arguments(0)))
:: damit wird in deinem %temp%-Verzeichnis eine einzeilige Datei mit gültiger VBS-Syntax geschrieben

:: So rufst du die auf
cscript //nologo %temp%\vbinputbox.vbs "Bitte wat reingeben:"  
:: Bei Eingabe von "Hallo" würde "Hallo" auf dem Bildschirm zurückgegeben.  

:: Und wenn du diesen "Hallo"- oder sonstwas-Wert als Batchvariable brauchst:  
FOR /F "delims=" %%i in ('cscript //nologo %temp%\vbinputbox.vbs "Bitte wat reingeben:"') do Set "MyBatchVar=%%"  
If not defined myBatchvar goto :UserHatAbbruchVorgezogen
IF /i "%MyBatchvar%" == "WattIchHoffe" goto :BestCase  
IF /i "%MyBatchvar%" == "WattIchNichHoffe" goto :IsDennWunschkonzert  
GOTO :WorstCase
...

Abkürzung 2)
Statt gerade Montags zu fragen "Wie ruf ich denn InputBox() auf oder was hat die für Syntax?", was relativ riskant ist, kannst du auch in ziemlich jede hergelaufene Suchmaschine oder Forumssuchfunktion "vbscript Inputbox syntax" reintippseln und drei Hundertstel Sekunden warten.

Grüße
Biber

[Edit] Okay, okay.... montags bin ich auch etwas langsamer....*zugeb [/Edit]