【问题标题】:CMD Server StartCMD 服务器启动
【发布时间】:2026-01-22 21:20:14
【问题描述】:

你好,有人可以帮帮我吗?^^

我的服务器启动器旧版本:

回声地图:

回声 1.mp_1a

echo 2.mp_2b

echo 3. mp_3c

echo 4.mp_4d

set /p MAP=输入您想要的地图名称:

cls

回声游戏模式:

回声游戏=TDM

回声游戏=DM

set /p GAME=输入你的游戏模式:

启动 Server.exe 服务器 %MAP%?%GAME%?maxplayers=16

我试试新版本

回声地图:

echo 1. 地图A

echo 2. 地图 B

echo 3. 地图C

echo 4.地图D

设置 /P wahl=Auswahl

如果 /i "%wahl%"=="1" goto:map1

如果 /i "%wahl%"=="2" goto:map2

如果 /i "%wahl%"=="3" goto:map3

如果 /i "%wahl%"=="4" goto:map4

:地图1

设置 MAP=mp_1a

:map2

设置 MAP=mp_2b

:地图3

设置 MAP=mp_3c

:map4

设置 MAP=mp_4d

cls

回声游戏模式:

回声 1. DM

回声 2. TDM

设置 /P wahl=Auswahl

如果 /i "%wahl%"=="1" goto:game1

如果 /i "%wahl%"=="2" goto:game2

:游戏1

设置 GAME=game_DM

:游戏2

设置 GAME=game_TDM

启动 Server.exe 服务器 %MAP%?%GAME%?maxplayers=16

新版本很简单,但是没有设置%MAP%和%GAME% -.-

谢谢你点亮

我所做的所有更改;)

回声地图:

echo 1. 地图A

echo 2. 地图 B

echo 3. 地图C

echo 4.地图D

设置 /P wahl=Auswahl

如果 /i "%wahl%"=="1" goto:map1

如果 /i "%wahl%"=="2" goto:map2

如果 /i "%wahl%"=="3" goto:map3

如果 /i "%wahl%"=="4" goto:map4

:地图1

设置 MAP=mp_1a

goto:gamemod

:map2

设置 MAP=mp_2b

goto:gamemod

:地图3

设置 MAP=mp_3c

goto:gamemod

:map4

设置 MAP=mp_4d

goto:gamemod

cls

:gamemod

回声游戏模式:

回声 1. DM

回声 2. TDM

设置 /P wahl=Auswahl

如果 /i "%wahl%"=="1" goto:game1

如果 /i "%wahl%"=="2" goto:game2

:游戏1

设置 GAME=game_DM

转到:开始

:游戏2

设置 GAME=game_TDM

转到:开始

:开始

启动 Server.exe 服务器 %MAP%?%GAME%?maxplayers=16

【问题讨论】:

  • 你能在你分享的代码上添加更多细节吗?
  • 就是这样,我将让服务器启动 cmd/exe,以便轻松启动并修复服务器,无需新的快捷方式,我更改修复地图和游戏模式并启动 ;)
  • 服务器以Start Server.exe server mp_1a?game_DM?maxplayers=16Server.exe server mp_3c?game_TDM?maxplayers=16开头
  • 注释掉或删除脚本中的任何ECHO OFF。运行它并观察每个语句。我预测 MAP 将始终为“mp_4d”,而 GAME 将始终为“game_TDM”,因为在设置它们之后,代码将通过设置下一个。

标签: batch-file cmd server


【解决方案1】:

跟踪每个步骤的执行。请注意,在设置 MAP 或 GAME 后,它会通过设置下一个值。此代码有一个 GOTO 跳转到 MAP 设置和 GAME 设置的末尾。当您看到代码执行正确的操作时,删除末尾的 echo 语句并从 start 语句中删除 echo

echo Maps:
echo 1. Map A
echo 2. Map B
echo 3. Map C
echo 4. Map D

set /P wahl=Auswahl

if /i "%wahl%"=="1" goto:map1
if /i "%wahl%"=="2" goto:map2
if /i "%wahl%"=="3" goto:map3
if /i "%wahl%"=="4" goto:map4

:map1
set "MAP=mp_1a" & GOTO AfterMap
:map2
set "MAP=mp_2b" & GOTO AfterMap
:map3
set "MAP=mp_3c" & GOTO AfterMap
:map4
set "MAP=mp_4d" & GOTO AfterMap

:AfterMap
cls

echo Gamemode:
echo 1. DM
echo 2. TDM

set /P wahl=Auswahl

if /i "%wahl%"=="1" goto:game1
if /i "%wahl%"=="2" goto:game2

:game1
set "GAME=game_DM" & GOTO AfterGame
:game2
set "GAME=game_TDM" & GOTO AfterGame

:AfterGame

echo MAP is set to %MAP%
echo GAME is set to %GAME%

echo     Start Server.exe server %MAP%?%GAME%?maxplayers=16

【讨论】:

  • @Tobi - 如果这对您有用,请单击箭头指示它是正确答案。谢谢。