Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите реализовать ветвление в bat файле. (http://forum.oszone.net/showthread.php?t=278915)

Eugene Shugaev 08-03-2014 15:24 2320773

Помогите реализовать ветвление в bat файле.
 
Вложений: 1
Я делаю загрузочный USB HDD и мне не не удобно перезагружаться каждый раз. Я решил проблему с помощь Vitual Box. Но там нет поддержки загрузки с внешних USB устройств через графический интерфейс. Ну я написал дополнение к virtual box, в виде bat файла. Но есть проблема:
rem Эта строчка принимает пeременную
set /p do=Enter:
rem А эта передаёт управление "модулю"
goto %do%
rem Но если такого модуля нет, то приложение завершает работу, а мне надо что бы оно передавало управление "модулю" :home (пример: goto :home)

rem Это список "модулей":
rem :home
rem :not taskkill
rem :help
rem :1
rem :2
rem :3
rem :4
rem :5
rem :6
rem :7
rem :8
rem :exit

Сам bat я прикрепил. Приложение требует права администратора.

Foreigner 08-03-2014 15:39 2320785

Eugene Shugaev, Если правильно понял
Код:

@echo off
setlocal

:home
set "do=home"

set /p do="Enter: "

if /i "%do%"=="home" goto:home
if "%do%"=="1" goto:1
if ...
if ...

goto:home

:1
:2
....


Eugene Shugaev 08-03-2014 16:05 2320806

Вы не совсем поняли, мне надо что бы если :

set /p do="Enter: fkjlehrg;iaergipregnrnrt" - "fkjlehrg;iaergipregnrnrt"это пример того что могут написать, и что бы если это "fkjlehrg;iaergipregnrnrt", не было равно ни одному модулю из списка
rem :home
rem :not taskkill
rem :help
rem :1
rem :2
rem :3
rem :4
rem :5
rem :6
rem :7
rem :8
rem :exit
То оно переходило в :home

Foreigner 08-03-2014 16:12 2320810

Eugene Shugaev, Ну и? У меня как-то не так?
Код:

@echo off
setlocal

:home

:: Устанавливаем значение do по умолчанию, на случай пустого ввода (просто Enter)
set "do=home"

set /p do="Enter: "

:: Проверяем значение do
if /i "%do%"=="home" goto:home
if "%do%"=="1" goto:1
if ...
if ...

:: Если ввели не предусмотренное значение уходим в home
goto:home

:1
:2
....


Eugene Shugaev 08-03-2014 16:32 2320815

Foreigner, Все спасибо я разобрался. + тебе


Время: 02:06.

Время: 02:06.
© OSzone.net 2001-