Здравствуйте я построить меню, как этотДля/F держать выход Errorlevel ЕХЕ
Select a mod from list below or select an option[1-4]:
[ 1 ] [Start Uncooking]
[ 2 ] [Browse computer for cooked mod]
[ 3 ] [Change cooked mods list folder]
[ 4 ] [Exit]
Cooked mods list folder:
D:\Spiele\The Witcher 3 Wild Hunt GOTY\Mods\:
"all folders of the above folder in one line like":
Mod1
Mod2
etc.
И я нормально работать с ним, как это:
call %wselectEXE% %menuTXT% "Quick Mod Tool Uncook Menu" "set userinput=%listfolder%$item" "Uncook Menu" /menu /oemlist /oemout /margin /cmdCenter /grid /fs=12 /dx=485 /dy=180 > %userinputBAT%
if %errorlevel%==0 del %menuTXT% & del %userselectionBAT% & del %userselectionlistBAT% & cls & goto :QuickModToolsMenu
if %errorlevel%==1 goto :UncookMenu
if %errorlevel%==2 goto :UncookMenu
if %errorlevel%==3 del %menuTXT% & goto :UncookAction
if %errorlevel%==4 goto :BrowseForModunCookMenu
if %errorlevel%==5 goto :ChangeListFolder
if %errorlevel%==6 del %menuTXT% & del %userselectionBAT% & del %userselectionlistBAT% & cls & goto :QuickModToolsMenu
if %errorlevel%==7 goto :UncookMenu
if %errorlevel%==8 goto :UncookMenu
if %errorlevel%==9 goto :UncookMenu
if %errorlevel%==10 (goto :UncookMenu) else goto :UncookMenuSub
Теперь я заменил его для цикла, но im отсутствует уровень ошибок wselect.exe.
Я получил обходной путь для этого, как это:
for /f "usebackq delims=" %%a in (`"wselect.exe Menu.txt "Quick Mod Tool Uncook Menu" "$item" "Uncook Menu" /menu /fs=12 /dx=485 /dy=180 /oemlist /oemout /margin /cmdCenter /grid"`) do (set "modname=%%a") & set "userinput=%listfolder%%%a"
if "%userinput%" == "%listfolder%" del %menuTXT% & del %userselectionBAT% & del %userselectionlistBAT% & cls & goto :QuickModToolsMenu
if "%userinput%" == "%listfolder%Select a mod from list below or select an option[1-4]:" goto :UncookMenu
if "%userinput%" == "%listfolder%[ 1 ] [Start Uncooking]" del %menuTXT% & goto :UncookAction
if "%userinput%" == "%listfolder%[ 2 ] [Browse computer for cooked mod]" goto :BrowseForModunCookMenu
if "%userinput%" == "%listfolder%[ 3 ] [Change cooked mods list folder]" goto :ChangeListFolder
if "%userinput%" == "%listfolder%[ 4 ] [Exit]" del %menuTXT% & del %userselectionBAT% & del %userselectionlistBAT% & cls & goto :QuickModToolsMenu
if "%userinput%" == "%listfolder%Cooked mods list folder:" goto :UncookMenu
if "%userinput%" == "%listfolder%%listfolder%:" goto :UncookMenu
goto :UncookMenuSub
Есть ли способ, чтобы вернуться к Orignal% ERRORLEVEL% выход?
иметь в виду goto_% ERRORLEVEL% не вариант здесь, потому что, если я бы построить так я бы определить 255 прыжковых метки (до 255 ERRORLEVEL в wselect.exe)
Но мне нужно только 8 % errorlevel% для работы, потому что каждый другой должен перейти к той же процедуре.
В принципе мне нужно установить jumpmarks для первых линий Menu.txt (blanklines игнорируются)
для всех остальных линий мне нужно такое же jumpmark.
FYI Мой сценарий работает как задумано, но я люблю errorevels и ненавижу свое собственное решение: D
Это не помогает. Мне нужен выбранный элемент в строке. Wselect может производить до 255 уровней ошибок. Мне нужен только уровень ошибок из 8 строк из первых 10 строк. – xTcisloVe
Я понимаю первую часть и адаптировал свой ответ, чтобы отразить это, в последней части вашего комментария я не получаю – peter
Im редактируя вопрос, который я думаю, тогда вы поймете мою проблему. Кстати, ваш код создает ошибку, но я не получаю, как я должен получить вывод из wselect.exe с вашим кодом. – xTcisloVe