joemouth
Goto Top

Wie mit Choice LW-Buchstaben auswählen

Hallo Freunde der gepflegten Batch-Konversation,

ich möchte mittels Choice einen LW-Buchstaben eingeben lassen:

Leider gibt Choice Zahlen im %errorlevel% zurück.

Hat jemand eine gute Idee, die Zahlen einfach in den entsprechenden Buchstaben zu wandeln?

So hat es leider nicht geklappt:

set drives=ABCDEFGHIJKLMNOPQRSTUVWXYZ

choice /C %drives% /M "Laufwerksbuchstaben auf den gemapped werden soll angeben:"  

set /A nr=%errorlevel%-1

set drive=%%drives:~%nr%,1%%

Vielen Dank!
P.S. man

Content-Key: 196215

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

Printed on: April 18, 2024 at 18:04 o'clock

Member: rubberman
rubberman Dec 23, 2012 at 21:18:35 (UTC)
Goto Top
Hallo joemouth,

call ist der Trick bei dieser Art verschachtelter Variablen.
Du kannst auch noch ein Leerzeichen in der Variablen drives voran stellen, dann ersparst du dir die zusätzliche Berechnung.
@echo off &setlocal
set "drives= ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
choice /N /C %drives% /M "Laufwerksbuchstaben auf den gemapped werden soll angeben: "  
call set "drive=%%drives:~%errorlevel%,1%%"  
echo %drive%
pause

Grüße
rubberman
Member: joemouth
joemouth Dec 23, 2012 at 23:09:16 (UTC)
Goto Top
Hallo rubberman,

sensationell! Hat prima funktioniert.
Genial auch die Idee mit dem Blank in der LW-Liste.

Vielen Dank, Joe
Member: pieh-ejdsch
pieh-ejdsch Dec 25, 2012 at 17:11:01 (UTC)
Goto Top
moin,

ist schick gelöst mit dem Leerschritt.
ein Variante mit Forschleife:
set "drives= ABCDEFGHIJKLMNOPQRSTUVWXYZ"   
<nul set /p "=.Laufwerksbuchstaben auf den gemappt werden soll angeben: "  
cmd /u /c "echo %drives%"|findstr "."  
for /f %%i in ('choice /n /c %drives%') do set "Drive=%%i" &echo Laufwerk = %%i  

PS.
Joe, setz bitte noch die Frage auf gelöst.

Gruß Phil