一个问题是在此结束时尝试调用 createserver.bat 时发生崩溃
del %USERPROFILE%\Desktop\TerrariaServer\filebin\serverparams.cmd
wget http://***/serverparams.cmd
call serverparams.cmd
IF name==default (
del %USERPROFILE%\Desktop\TerrariaServer\filebin\serverparams.cmd
call senderror.bat
) ELSE (
randomport -default -defaut -default
timeout /t 1
)
IF NOT name==default (
sysresourceoutput
timeout /t 5
call sysresources
IF %ram% GTR 1600 (
call %USERPROFILE%\Desktop\TerrariaServer\createserver.bat
)
)
虽然 createserver.bat 单独运行良好。
另一个问题是通过调用 serverparams.cmd.. 链接设置值或使用上述方法正确设置 serverparams 值,尽管通过下面 startserver 中的一系列命令运行它是正常的(在基本目录中)。
call setname.cmd
call setvars.cmd
set path=%USERPROFILE%\desktop\TerrariaServer
ECHO set port=%var1% >%path%\%name%_set.cmd
ECHO set players=%var2% >>%path%\%name%_set.cmd
ECHO set autocreate=%var3% >>%path%\%name%_set.cmd
ECHO set worldname=%var4% >>%path%\%name%_set.cmd
ECHO set password=%var5% >>%path%\%name%_set.cmd
ECHO set motd=%var6% >>%path%\%name%_set.cmd
ECHO set lang=%var7% >>%path%\%name%_set.cmd
ECHO set priority=%var8% >>%path%\%name%_set.cmd
ECHO set name=%name% >>%path%\%name%_set.cmd
call %name%_set.cmd
ECHO maxplayers=%players% >%path%\%name%_config.txt
ECHO world=%USERPROFILE%\Documents\My Games\Terraria\Worlds\%worldname%.wld >>%path%\%name%_config.txt
ECHO port=%port% >>%path%\%name%_config.txt
ECHO password=%password% >>%path%\%name%_config.txt
ECHO motd=%motd% >>%path%\%name%_config.txt
ECHO worldpath=%USERPROFILE%\Documents\My Games\Terraria\Worlds\ >>%path%\%name%_config.txt
ECHO secure=1 >>%path%\%name%_config.txt
ECHO lang=%lang% >>%path%\%name%_config.txt
ECHO upnp=0 >>%path%\%name%_config.txt
ECHO #npcstream=60 >>%path%\%name%_config.txt
ECHO priority=%priority% >>%path%\%name%_config.txt
ECHO IF EXIST "%USERPROFILE%\Documents\My Games\Terraria\Worlds\%worldname%" ( >%path%\%name%_start.bat
ECHO TerrariaServer -config %path%\%name%_config.txt >>%path%\%name%_start.bat
ECHO ) ELSE ( >>%name%_start.bat
ECHO TerrariaServer -config %path%\%name%_config.txt -port %port% -players %players% -world "%USERPROFILE%\Documents\My Games\Terraria\Worlds\%worldname%.wld" -autocreate %autocreate% -worldname %worldname%.wld >>%path%\%name%_start.bat
ECHO ) >>%path%\%name%_start.bat
call %path%\%name%_start.bat
我的问题是,有没有我遗漏的细微差别?我认为有一种更动态的方式来列出一组递增变量,而不是手动将它们命名为 var01、var02
此外,它会在 %worldname% 之后放置一个空格,但我可以接受。