Пакет не возвращается к основной метке [меню] после копирования файлов при вызове кода вывода из другой метки - PullRequest
1 голос
/ 12 октября 2019

Я пытаюсь создать переносимый пакетный файл для моего сервера Minecraft и хочу добавить к нему некоторые функции.

Однако, когда я выбираю опцию для копирования-вставки из папки BuildTools *От 1004 * до server directory указанного файла и вызовите метку create the server batch script, вместо выхода из текущей метки, которая создает скрипт, и возврата к метке :server_menu, он просто завершается.

Я пытаюсь сделать код из пакета для переносимости для любого пользователя Windows *, это означает, что мне нравится использовать встроенные инструменты, такие как cmd.exe, powershell.exe [version 1.0 or up], vbscript или любой инструментиз окон.

В качестве зависимостей у меня есть Java Jdk 8 & Git & BuildTools

Следующий пакетный код является всего лишь римейком моего реального кода:

@echo off
setlocal enabledelayedExpansion
set mcserver_root=%~d0
set mcserver_dir=%mcserver_root%%~p0
set mcserver_dir=!mcserver_dir:~0,-1!
set vanilla_srv=%vanilla_path%\*server*.jar

:server_menu
CLS
ECHO:-----------------------------------------                                      
ECHO: Don't worry if you don't have a server
ECHO:           minecraft server yet!
ECHO: Select an option from [1] to [6] :
ECHO:
ECHO: [1] Update to Vanilla
ECHO: [2] Update to CraftBukkit
ECHO: [3] Update to Spigot
ECHO: [4] Update to Custom
ECHO: [5] Run Server BackUp
ECHO: [6] Return
ECHO:
ECHO:-----------------------------------------
set s_choice=
set /p s_choice= Enter your option ^> 
if not '%s_choice%'=='' set s_choice=%s_choice:~0,1%
if '%s_choice%'=='1' goto :vanilla
if '%s_choice%'=='2' goto :cbukkit
if '%s_choice%'=='3' goto :spigot 
if '%s_choice%'=='4' goto :modded
if '%s_choice%'=='5' goto :backup
if '%s_choice%'=='6' goto :return
ECHO:"%s_choice%"
goto :server_menu

:vanilla 
IF NOT EXIST "%mcserver_dir%\*server*.jar" (

copy %vanilla_srv% %mcserver_dir% 
call :minecraft_server_script>Run_Vanilla.bat [HERE IS THE PROBLEM]
exit /b [There is too!]
REM If file alerday exists in folder, replace it with a new fresh copy
) ELSE IF EXIST "%mcserver_dir%\*server*.jar" (

copy %vanilla_srv% %mcserver_dir% 
call :minecraft_server_script>Run_Vanilla.bat [HERE]
exit /b                                       [and HERE]
)

for %%i in ("minecraft_server*.jar") do (set fname=%%i) & call :rename_vanilla
ren "%fname%" "%fname:~0,23%".jar
:minecraft_server_script [The code that it creates only after copyed complete the file]
echo:There is the server script. There it should output the display and return to the "server_menu"


:cbukkit
CLS
echo craftbukkit
pause
CLS
goto :server_menu

:spigot
CLS
echo spigot
pause
CLS
goto :server_menu 

:modded
echo modded
pause
goto :server_menu

:backup
echo BackUp Server
pause
goto :server_menu

:return
goto :main_menu

Можно задать вопрос здесь: * Но моя проблема заключается в следующем: Как вернуться к :server_menu после копирования файла и создания сценария без остановки пакетного файла?

Я использую Windows 7 Ultimatex64 как администратор

...