Пакетный скрипт "server-updater.bat" работает некорректно - PullRequest
0 голосов
/ 29 сентября 2019

Я настраиваю новый сервер Minecraft 1.XX.XX, используя BuildTools, и хочу создать пакетный скрипт с параметрами, которые копируют конкретный jar-сервер (например, spigot-1.12.2-EN.1-SNAPSHOT.jar) к моему месту на сервере minecraft, затем он создает командный файл с моим кодом для запуска сервера.Но скрипт допускает некоторые ошибки и иногда не копирует указанный файл, а создает два пакетных файла для двух разных jar-файлов ... Также я попытался сделать пакетный сценарий переносимым.

У меня естьперепробовал много вариантов реального кода, который мне нужен, например, структурирование операторов if или реорганизация меток путем вырезания некоторых из них.Ниже приведены коды, которые я пробовал: PS: Мой настоящий код больше.Я вырезал некоторые части

@echo off
title SSU_b1.0-test01
color 2
mode con:cols=74 lines=28

setlocal EnableDelayedExpansion
set server_root=%~dp0
set server_root=!server_root:~0,-1!

:main_menu
CLS
ECHO:1. Vanilla
ECHO:2. CraftBukkit
set choice=
set /p choice=
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto vanilla
if '%choice%'=='2' goto cb
ECHO:"%choice%"
goto :eof


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

cd %mcserver_root%
del craftbukkit-1*.jar
del spigot-1*.jar
del *server*.jar
del Run_Vanilla.bat
del Run_CraftBukkit.bat
del Run_Spigot.bat
copy %server_root%\BuildTools\work\*server*.jar %server_root% & call :minecraft_server_script>Run_Vanilla.bat
goto :main_menu
) ELSE IF EXIST "%server_root%\*server*.jar" (
cd %mcserver_root%
del craftbukkit-1*.jar
del spigot-1*.jar
del *server*.jar
del Run_Vanilla.bat
del Run_CraftBukkit.bat
del Run_Spigot.bat
copy %server_root%\BuildTools\work\*server*.jar %server_root% & call :minecraft_server_script>Run_Vanilla.bat
)
for %%i in ("minecraft_server*.jar") do (set fname=%%i) & call :rename_vanilla
pause
:rename_vanilla
ren "%fname%" "%fname:~0,23%".jar
echo Successfully renamed minecraft_server.jar to %fname% !
pause
:minecraft_server_script
echo:@echo off
echo:for %%%%i in ("minecraft_server*.jar") do (set fname=%%%%i)
echo:java -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -Xmn512M -Xms1024M -Xmx3048M -jar %%fname%% nogui
echo:pause

:cb
IF NOT EXIST "%server_root%\craftbukkit-1*-SNAPSHOT.jar" (
cd %mcserver_root%
del craftbukkit-1*.jar
del spigot-1*.jar
del *server*.jar
del Run_Vanilla.bat
del Run_CraftBukkit.bat
del Run_Spigot.bat
copy %server_root%\BuildTools\CraftBukkit\target\craftbukkit-1*-SNAPSHOT.jar %server_root% & call :cb_script >Run_CraftBukkit.bat
for %%i in ("craftbukkit*.jar") do (set fname=%%i) & call :rename
)
pause
:rename
ren "%fname%" "%fname:~0,-18%".jar
echo Successfully renamed craftbukkit.jar to %fname%
pause
:cb_script
echo:@echo off
echo:for %%%%i in ("craftbukkit*.jar") do (set fname=%%%%i)
echo:java -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -Xmn512M -Xms1024M -Xmx3048M -jar %%fname%% nogui
echo:pause

Я ожидаю, что этот пакетный файл будет работать на любом компьютере с Windows со встроенными функциями (Командная строка, Powershell 2 с Windows 7 по крайней мере, конфигурация Windows по умолчанию, и работать на64-разрядные тоже и т. Д.) А для загрузки с веб-сайтов https, более конкретно, для загрузки exe-файла с github, например.Но (по крайней мере, на меня) похоже, что он не работает должным образом на меня.У меня Windows 7 Ultimate x64 bit.

Пожалуйста, не используйте ЛЮБЫЕ не встроенные программы для Windows, так как я хочу, чтобы этот скрипт работал на всех ПК, кроме любой программы, которая необходима для создания хорошего mc-сервера.как Java Jdk 8 или Git.

Примечание. Требуется работать как минимум на 64-битной системе на любом компьютере с Windows, начиная с Windows 7. Вы также можете создавать гибриды, но файл ДОЛЖЕН быть .bat /.cmd файлБыло бы здорово, если бы вы могли сделать его исполняемым файлом, но вам также нужно показать мне код.И, пожалуйста, объясните мне, когда вы отправляете ответы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...