frankreich
Goto Top

Auswahlfenster Batch

Liebes Forum!
Ich habe ein Batch Script geschrieben, bei welchem man die IP changen kann denn Namen und den Hintergrund ändern. Das Programm wird auf Computern ausgeführt, welche 2 Lan Schnittstellen haben. Jetzt sollte ich ein Popup haben, bei dem man mit einem einfachen click eine der zwei Schnittstellen auswählen kann. Ausgeben sollte das Popup dann eine Textdatei an einem gewissen Ort, mit einem Wert 0 oder 1.

Bittte um Hilfe
Frankreich

Content-ID: 380465

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

emeriks
emeriks 17.07.2018 um 09:05:05 Uhr
Goto Top
Hi,
also mit Batch:
Schaum mal z.B. hier: https://www.sevenforums.com/tutorials/78083-batch-files-create-menu-exec ...

Ansonsten, wenn es unbedingt ein Popup sein soll, dann VBScript oder PowerShell.

E.
rubberman
rubberman 17.07.2018 um 09:15:59 Uhr
Goto Top
Jetzt sollte ich ein Popup haben
Ach, doch nicht in Batch. Dafür müsstest du eine zusätzliche Scriptsprachen einbinden. Das Konsolefenster ist dein Interface. Ein einfaches CHOICE Kommando genügt doch dafür völlig.

Steffen
Frankreich
Frankreich 17.07.2018 um 09:22:50 Uhr
Goto Top
Danke für die schnelle meldung- das problem ist diese Pcs haben keine Tastatur sprich all in one pannels. Deswegen sollts per Click funktionieren. habe aber keine Ahnung von VBScript, bzw wie ich soetwas dann als exe oder so speichern kann.

LG
Penny.Cilin
Penny.Cilin 17.07.2018 um 09:28:15 Uhr
Goto Top
Zitat von @Frankreich:

Danke für die schnelle meldung- das problem ist diese Pcs haben keine Tastatur sprich all in one pannels. Deswegen sollts per Click funktionieren.
Und WARUM schreibst Du das nicht gleich bei Deiner Frage dazu???

LG

Gruss Penny
Frankreich
Frankreich 17.07.2018 um 09:33:00 Uhr
Goto Top
Ist mir auch erst jetzt bewusst sorry - ich brauche einfach ein Programm, welches ich starten kann von meiner Batch aus, mit zwei Buttons zum klicken, (Schnittstelle 1, Schnittstelle 2) wenn ich dann auf 1 zb klicke soll es irgendwo im Laufwerk C eine Textdatei erstllen mit dem Wert 1.
rubberman
Lösung rubberman 17.07.2018 aktualisiert um 09:45:45 Uhr
Goto Top
haben keine Tastatur
Dann ist Batch mit seinem textbasierten Interface aber völlig ungeeigenet.

zwei Buttons zum klicken, (Schnittstelle 1, Schnittstelle 2)
Damit kann ich nicht dienen, nur mit Standarddialogen. Vielleicht kommt jemand mit Powershell um die Ecke wo es auch benutzerspezifische Möglichkeiten gibt.

@if (0)==(0) echo off

cscript //nologo //e:jscript %~fs0
echo %errorlevel%
pause

goto :eof @end WScript.Quit(WScript.CreateObject('WScript.Shell').Popup('Es gibt "a" und "b".\nWillst du "a"?', 0, 'Entscheide dich jetzt!', 4) == 6 ? 1 : 0);  
Die erste Zeile immer so und nicht anders, die letzte Zeile muss immer die letzte im gesamten Batchscript sein.

Steffen
Frankreich
Frankreich 17.07.2018 um 09:44:28 Uhr
Goto Top
Danke das bringt mich der Sache schon um einiges näher, experimentiere jetzt noch ein wenig. Melde mich wenn ich die richtige lösung habe vielen Dank.
Frankreich
Frankreich 17.07.2018 um 09:49:56 Uhr
Goto Top
Weißt du eventuell wie ich den Wert noch in eine Textdatei bekomme?
LG
rubberman
rubberman 17.07.2018 aktualisiert um 09:55:10 Uhr
Goto Top
Per ECHO Umleitung, wie immer. Statt der Ausgabe ins Fenster ...
>"meine.txt" echo %errorlevel%
(Aufpassen dass du dir beim Kopieren kein Leerzeichen am Ende der Zeile einhandelst.)

Steffen

PS: Brauchst du Batch eigentlich oder reicht dir das Popup pur mit der Umleitung?
Frankreich
Frankreich 17.07.2018 um 09:56:06 Uhr
Goto Top
Dankeschön - anstatt a und b kann ich leider keine Variablen nehmen oder?
rubberman
Lösung rubberman 17.07.2018 aktualisiert um 10:34:10 Uhr
Goto Top
Müsstest du halt beim Aufruf von cscript.exe als Argumente übergeben.
@if (0)==(0) echo off

cscript //nologo //e:jscript %~fs0 "Schnittstelle 1" "Schnittstelle 2"  
echo %errorlevel%
pause

goto :eof @end WScript.Quit(WScript.CreateObject('WScript.Shell').Popup('Es gibt "' + WScript.Arguments(0) + '" und "' + WScript.Arguments(1) + '".\nWillst du "' + WScript.Arguments(0) + '"?', 0, 'Entscheide dich jetzt!', 4) == 6 ? 1 : 0);  
Steffen
Frankreich
Frankreich 17.07.2018 um 13:25:23 Uhr
Goto Top
Vielen Dank jetzt klappt alles so wie ichs wollte!