Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Ersatz für Batch Befehl CHOICE ? (https://www.delphipraxis.net/69165-ersatz-fuer-batch-befehl-choice.html)

daedalus 11. Mai 2006 08:29


Ersatz für Batch Befehl CHOICE ?
 
Hallo Leute

Ich krame gerade in meinen alten Batch-Dateien.
Zumindest bei WinXP kennt der CMD Interpreter den Befehl CHOICE nicht mehr.
Gibt es eine Alternative? :gruebel:

Hier ein Beispiel:

Code:
@echo off
CLS
:loop1
echo Bitte Netzwerkkartentreiber wählen:
echo
echo 1 = Dell Latitude C840
echo 2 = PC ..

choice /c:12   
if errorlevel 2 goto net2   
if errorlevel 1 goto net1 
goto loop1

:net1
echo \net\netbind.com
goto exit

:net2
echo \net\net...
goto exit

:exit
EXIT

marabu 11. Mai 2006 08:42

Re: Ersatz für Batch Befehl CHOICE ?
 
Hi.

Schau dir mal den Schalter /P des SET-Befehls an. Damit sollte sich was reißen lassen.

Grüße vom marabu

turboPASCAL 11. Mai 2006 09:07

Re: Ersatz für Batch Befehl CHOICE ?
 
Code:
@ECHO OFF
CLS
:Start
ECHO.
ECHO [1] Start Nummer 1
ECHO [2] Start Nummer 2
ECHO [3] Beenden
ECHO.
SET choice=
SET /P choice=Bitte Auswählen (1 bis 3):
IF NOT ´%choice%´==´´ SET choice=%choice:~0,1%
if ´%choice%´==´1´ goto Run1
if ´%choice%´==´2´ goto Run2
if ´%choice%´==´3´ goto Exit
ECHO "%choice%" ist keine gültige Eingabe. Bitte noch einmal:
ECHO.
GOTO Start

:Run1
ECHO Start Nummer 1
REM ...
goto end

:Run2
Start Nummer 2
REM ...
goto end

:Exit
ECHO Beendet durch User
GOTO End

:End
Ein Beispiel.

Sharky 11. Mai 2006 09:07

Re: Ersatz für Batch Befehl CHOICE ?
 
Zitat:

Zitat von daedalus
... Zumindest bei WinXP kennt der CMD Interpreter den Befehl CHOICE nicht mehr. ...

Ist glaube ich seit NT nicht mehr dabei. Allerdings war CHOICE kein "Befehl" sondern ein externes Programm. Du kannst ja mal sehen ob Du noch ein W98 hast. Dann kannst Du dir das Programm ja kopieren.

marabu 11. Mai 2006 09:12

Re: Ersatz für Batch Befehl CHOICE ?
 
Hi Sharky,

wenn ich Unmengen an choice-verseuchten Script-Code hätte, dann würde ich CHOICE aus dem W2K3 resource kit holen. Wenn nicht, dann nehme ich doch lieber einen internen Befehl der command shell mit vergleichbarer Funktionalität.

Grüße vom marabu

daedalus 11. Mai 2006 12:20

Re: Ersatz für Batch Befehl CHOICE ?
 
Also mein Batch sieht jetzt so aus:
Code:
@ECHO OFF
CLS
:Start
ECHO.
ECHO [1] Dell Latitude C840 
ECHO [2] PC001
ECHO [3] Abbruch
ECHO.
SET choice=
SET /P choice=Bitte Auswählen (1 bis 3):
IF NOT ´%choice%´==´´ SET choice=%choice:~0,1% 
if ´%choice%´==´1´ goto Run1 
if ´%choice%´==´2´ goto Run2 
if ´%choice%´==´3´ goto Exit
ECHO "%choice%" ist keine gueltige Eingabe. Bitte noch einmal:
ECHO.
GOTO Start

:Run1 
echo \net\netbind.com
REM ...
goto end

:Run2 
echo \net\net...
REM ...
goto end

:Exit
ECHO Beendet durch User
GOTO End

:End
Dank an marabu und turboPASCAL :thumb:

Einziger Wermutstropfen ist die Reaktion wenn nur die Return-Taste betätigt wird:
Code:
"┤==┤1┤" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Das würde ich gern noch abfangen.

turboPASCAL 11. Mai 2006 13:18

Re: Ersatz für Batch Befehl CHOICE ?
 
Welches Betriebssystem und gff. welcher Zeichensatz (DOS) ?

Du kannst das ja auch mit einer kleinen Konsolenanwendung machen, Sichwort Hier im Forum suchenShellExecute.

:gruebel:

daedalus 11. Mai 2006 14:19

Re: Ersatz für Batch Befehl CHOICE ?
 
Zitat:

Welches Betriebssystem und gff. welcher Zeichensatz (DOS) ?
Codepage 850

Zitat:

Du kannst das ja auch mit einer kleinen Konsolenanwendung machen, Sichwort ShellExecute .
ShellExecute geht leider nicht, denn das batch soll in der autoexec.bat aufgerufen werden.

Aber ich denke ich kann schon gut mit dem aktuellen batch leben...

Nochmals vielen Dank für die Tips :hi:

turboPASCAL 13. Mai 2006 01:00

Re: Ersatz für Batch Befehl CHOICE ?
 
Zitat:

Zitat von daedalus
Zitat:

Du kannst das ja auch mit einer kleinen Konsolenanwendung machen, Sichwort ShellExecute.
ShellExecute geht leider nicht, denn das batch soll in der autoexec.bat aufgerufen werden.

:wiejetzt: Was hindert dich daran ?

Andreas L. 13. Mai 2006 08:06

Re: Ersatz für Batch Befehl CHOICE ?
 
Ahoi,
Zitat:

Zitat von turboPASCAL
Zitat:

Zitat von daedalus
Zitat:

Du kannst das ja auch mit einer kleinen Konsolenanwendung machen, Sichwort ShellExecute.
ShellExecute geht leider nicht, denn das batch soll in der autoexec.bat aufgerufen werden.

:wiejetzt: Was hindert dich daran ?

Naja, dann müsste er aber ein 16-Bit-Programm machen. Also ich gehe davon aus das die autoexec.bat auf irgendeiner Diskette oder USB-Stick liegt und er möchte quasi eine Startdiskette mit Netzwerktreibern machen... Unter WinNT wird ja die autoexec.bat beim Systemstart nicht mehr ausgeführt, dafür hat man Anmeldeskripts ;-)

bye,
Andy


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz