2016-01-10 1 views
0

Я следовал this neat tutorial и попытался редактировать его для моего использования.Использование меню пакетного файла для выбора, какая дальнейшая партия для запуска

У меня возникла небольшая проблема с созданием небольшого пакетного файла с небольшим меню, где после выбора опции (например, RUN ARMA3DB) она вызывала бы скрипт ARMA3DB в пакете, который запускал бы желаемый командный файл, который запускает файл под названием A3DB-V2.bat (находится в другом месте).

ECHO OFF 
CLS 

:MENU 
cls 
ECHO. 
ECHO ............................................... 
ECHO. 
ECHO 1 - RUN - ArmA 3 Server 
ECHO 2 - RUN - ArmA 3 Database 
ECHO 3 - RUN - Minecraft Server 
ECHO 4 - RUN - Killing Floor Server 
ECHO 5 - RUN - Insurgency Server 
ECHO 6 - RUN - Starbound Server 
ECHO 7 - EXIT 
ECHO. 

SET /P M=Type 1, 2, 3, 4, 5, 6, or 7 then press ENTER: 

IF %M%==1 GOTO ARMA3SERVER 
IF %M%==2 GOTO ARMA3DB 
IF %M%==3 GOTO MINECRAFT 
IF %M%==4 GOTO KILLINGFLOOR2 
IF %M%==5 GOTO INSURGENCY 
IF %M%==6 GOTO STARBOUND 
IF %M%==7 GOTO EOF 

:ARMA3SERVER 
cd "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\" 
start A3-V2.bat 
GOTO MENU 

:ARMA3DB 
cd "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB\" 
start A3DB-V2.bat 
GOTO MENU 

:MINECRAFT 
cd "C:\Users\USERNAME\AppData\Local\McMyAdmin\" 
start McMyAdmin-V2.bat 
GOTO MENU 

:KILLINGFLOOR2 
cd "C:\Program Files\Steam\steamapps\common\killingfloor2\" 
start KF2ServerReunion-V2.bat 
GOTO MENU 

:INSURGENCY 
cd "C:\Program Files (x86)\Steam\steamapps\common\Insurgency Dedicated Server\" 
start Insurgency-V2.bat 
GOTO MENU 

:STARBOUND 
cd "C:\Program Files (x86)\Steam\steamapps\common\Starbound\win64\" 
start starbound_server-v2.bat 
GOTO MENU 

Это в A3DB-V2.bat:

START /min redis-server.exe redis.conf 

Проблема заключается в том, когда я называю вариант "2" для ARMA3DB, открывает нужный командный файл (A3DB-V2.bat) родной консоли для программы «Redist-server.exe», но он также открывает целую новую вкладку ЦМД:

C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB\START /min redist-server.exe redist.conf 
C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB> 

Я попытался работать вокруг него путем добавления/B (для не открывая новую вкладку CMD) после Команда START в скрипте в меню как так:

:ARMA3DB 
cd "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB\" 
start /B A3DB-V2.cmd 
GOTO MENU 

Но возникла новая проблема выскочило, теперь она показывает то же самое, но в той же вкладке в меню находится в так:.

Type 1, 2, 3, 4, 5, 6, or 7 then press ENTER: 
C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB\START /min redist-server.exe redist.conf 
C:\Program Files (x86)\Steam\steamapps\common\Arma 3\DB> 

Так что я не могу ввести любой Дальнейшее значение. Похоже, что оно игнорировало GOTO MENU, и вместо этого оно продолжалось как новый экземпляр cmd.exe в папке, где был запущен новый командный файл.

Возможно, у кого-нибудь есть идея для простого варианта работы, поэтому я могу просто открыть файл menu.bat, выбрать вариант, нажать «Ввод», который может запустить требуемый пакетный файл (сведен к минимуму) и что я мог бы немедленно выбрать другой вариант из того же файла меню?

// Скрипт не полностью завершен, конечно, я застрял в этой проблеме.

Спасибо за все возможные ответы.

ответ

0

Используйте команду CALL для вызова других пакетных файлов. Например, изменить этот код:

:ARMA3SERVER 
cd "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\" 
start A3-V2.bat 
GOTO MENU 

Для этого:

:ARMA3SERVER 
cd "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\" 
call A3-V2.bat 
GOTO MENU 

Затем добавить @ к каждому называется пакетный файл, как это: @START /min redis-server.exe redis.conf так, что он будет работать с @echo набор для отключения.

+0

Это работало просто отлично. Большое спасибо! – Mara

+0

Итак, все это время мне приходилось устанавливать состояние эха до и после старта, я мог бы просто добавить символ скрыть к самой команде? Черт, я должен был ожидать этого поведения. , , – Bloodied

Смежные вопросы