Я настраиваю новый сервер 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 файлБыло бы здорово, если бы вы могли сделать его исполняемым файлом, но вам также нужно показать мне код.И, пожалуйста, объясните мне, когда вы отправляете ответы!