File 将两个批处理文件与设置值挂钩(过早退出?)
一个问题是,在此结束时尝试调用createserver.bat时发生崩溃File 将两个批处理文件与设置值挂钩(过早退出?),file,batch-file,File,Batch File,一个问题是,在此结束时尝试调用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
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中的一系列命令运行它(在基本目录中)是正确的
我的问题是,我有没有遗漏任何细微差别?我认为有一种更动态的方式来列出一组递增变量,而不是手动将它们命名为var01、var02
另外,它在%worldname%后面加了一个空格,但我同意。这样的行永远不会执行,因为没有%variables%要计算,它比较的是不同的静态字符串
IF name==默认值(
当用户配置文件包含空格或&字符时,这样的行将失败。解决方案是将整个“path\filename”括在双引号中:
del”%USERPROFILE%\Desktop\terriaserver\filebin\serverparams.cmd“
像这样的行应该被编辑以包括行开始处的重定向。这解决了每行末尾的空格问题
ECHO set端口=%var1%>%path%\%name%\u set.cmd
以这种方式重写行并删除尾随空格
>"%path%\%name%_set.cmd" ECHO set port=%var1%
>>"%path%\%name%_set.cmd" ECHO set players=%var2%
包含双引号以适应较长的pathname\filename元素,并将%path%name更改为其他内容,因为
path
是一个系统变量,使用它将破坏一切。类似于IF%ram%GTR 1600的行(
如果在块开始时变量未定义,则在复合语句中将失败,并且将使用变量的起始值,而不是像在调用sysresources
中那样在块中分配的任何值。请参阅此处与延迟扩展相关的无尽解决方案“if name==default(”有趣的是,没有定义%ram%之类的东西导致了失败。
>"%path%\%name%_set.cmd" ECHO set port=%var1%
>>"%path%\%name%_set.cmd" ECHO set players=%var2%