概述
@echo off
chcp 936
echo 设置编码完成!
title Unturned服务器部署工具 V9.4 by sand 图标来源于Unturned主程序
echo =========================================================================
echo Unturned服务器更新工具 V2.7 by sand
echo 本bat仅为自动下载/安装/更新Unturned和Rocket
echo config文件夹用于储存APIKey和安装目录(如果不需要可以手动删除)
echo 在使用过程中会自动释放扩展程序和vbs(wget.exe unzip.vbs)!
echo 在完成操作后会自动删除,请勿手动删除!
echo 请勿用作商业用途,如果有bug请告知!
echo =========================================================================
echo 版权声明:
echo Steam账号来源于fr34kyn01535的bat(Rocket的zip自带)
echo 解压zip代码来源于http://demon.tw/programming/vbs-unzip-file.html
echo 字符判断的代码来自http://www.bathome.net/thread-34099-1-1.html
echo 本bat原贴地址为http://www.mcbbs.net/thread-625354-1-1.html
echo =========================================================================
if exist "%cd%wget.exe" (echo 扩展程序已发现。) Else (echo 无法找到扩展程序!请一并解压到同一文件夹!&pause&exit)
echo "%cd%">if
findstr /p /m "&" if>if1
set /p if=
del /s /q if>nul
del /s /q if1>nul
if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)
if exist "%cd%config" (echo 已创建config目录。) Else (md "%cd%config")
::创建Config目录。
set "c=%cd%"
::当前目录留存
:start
if exist "%cd%configAPIKey" (echo 发现APIkey文件,已跳过APIkey的输入。) else (goto NAPIKey)
set /p APIKey=
if "%APIKey%" == "" set APIKey=空
echo 当前APIKey为%APIKey%
set /p CAPIKey=更改APIKey?(Y/N)
if "%CAPIKey%" == "Y" set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"&goto HAPIKey
if "%CAPIKey%" == "N" (goto HAPIKey) else (echo 你输入的字符必须为Y或N。&goto start)
:NAPIKey
set "APIKey="
set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"
if "%APIKey%" == "" set APIKey=空
:HAPIKey
echo "%APIKey%">if
findstr /p /m "&" if>if1
set "if="
set /p if=
del /s /q if>nul
del /s /q if1>nul
if "%if%" == "" (echo APIKey格式验证通过!^(不代表可以使用^)) else (echo 错误的APIKey!&goto NAPIKey)
>"%cd%configAPIKey" echo %APIKey%
:233
echo 你输入的APIKey已储存到config目录下。
set /p APIKey=
if exist "%cd%configSteamcmd" (echo 发现Steamcmd文件,已跳过Steamcmd安装目录的输入。) else (goto NSteamcmd)
set /p d=
:Ierror
echo 当前SteamCmd安装目录:%d%
set /p CSteamcmd=更改SteamCmd安装目录?(Y/N)
if "%CSteamcmd%" == "Y" set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"&goto HSteamcmd
if "%CSteamcmd%" == "N" (goto HSteamcmd) else (echo 你输入的字符必须为Y或N。&goto Ierror)
:NSteamcmd
set "d="
set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"
:HSteamcmd
if "%d%" == "" set "d=%cd%Steamcmd"
echo "%d%">if
findstr /p /m "&" if>if1
set "if="
set /p if=
del /s /q if>nul
del /s /q if1>nul
if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto NSteamcmd)
::SteamCmd默认安装目录
if exist "%d%" (echo 目录"%d%"已存在,跳过创建目录。) Else (md "%d%")
cd /d "%d%"
set "d=%cd%"
set "a=%cd%steamappscommonUnturned"
set "Steamcmd=%cd%"
::Unturned安装目录
cd /d "%c%"
>"%cd%configInstall" echo %a%
echo 你输入的Untruned安装目录已储存到config目录下。
>"%cd%configSteamcmd" echo %Steamcmd%
echo 你输入的SteamCmd安装目录已储存到config目录下。
cd /d "%d%"
title 下载SteamCmd和Unturned中...
if exist steamcmd.exe echo 检测到SteamCmd已安装,跳过下载&goto true
::该下载SteamCmd代码来自Rocket安装文件的脚本文件夹 作者fr34kyn01535
bitsadmin.exe /transfer "正在下载SteamCMD" https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip "%d%steamcmd.zip"
::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html
>Unzip.vbs echo UnZip "%d%steamcmd.zip", "%d%"
>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)
>>Unzip.vbs echo Set fso = CreateObject("Scripting.FileSystemObject")
>>Unzip.vbs echo If NOT fso.FileExists(myZipFile) Then
>>Unzip.vbs echo Exit Sub
>>Unzip.vbs echo ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then
>>Unzip.vbs echo Exit Sub
>>Unzip.vbs echo ElseIf NOT fso.FolderExists(myTargetDir) Then
>>Unzip.vbs echo fso.CreateFolder(myTargetDir)
>>Unzip.vbs echo End If
>>Unzip.vbs echo Set objShell = CreateObject("Shell.Application")
>>Unzip.vbs echo Set objSource = objShell.NameSpace(myZipFile)
>>Unzip.vbs echo Set objFolderItem = objSource.Items()
>>Unzip.vbs echo Set objTarget = objShell.NameSpace(myTargetDir)
>>Unzip.vbs echo intOptions = 256
>>Unzip.vbs echo objTarget.CopyHere objFolderItem, intOptions
>>Unzip.vbs echo End Sub
call Unzip.vbs
del /f/s/q Steamcmd.zip>nul
del /f/s/q Unzip.vbs>nul
:true
steamcmd.exe +login unturnedrocksupdate force_update +app_update 304930 validate +exit
if exist "%d%steamappscommonUnturnedUnturned.exe" (echo Unturned安装成功) else (echo Unturned安装失败,请将SteamCmd安装目录设置到非中文且不带有^&的目录下!&pause&exit)
cd /d "%c%"
goto InstallRocket
:error
echo 你输入的字符必须为Y或N。
:InstallRocket
set /p Rocket=是否安装Rocket?(Y/N)
if "%Rocket%" == "Y" goto yes
if "%Rocket%" == "N" (goto no) else (goto error)
:yes
title 下载Rocket中...
if exist Rocket.zip del /f/s/q Rocket.zip>nul
wget http://api.rocketmod.net/download/unturned/latest/%APIKey%/Rocket.zip
del /s /q wget.exe>nul
title 正在安装Rocket...
cd /d "%a%"
if exist ".ModulesRocket.Unturned" rd /s/q .ModulesRocket.Unturned>nul
::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html
>Unzip.vbs echo UnZip "%c%Rocket.zip", "%cd%"
>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)
>>Unzip.vbs echo Set fso = CreateObject("Scripting.FileSystemObject")
>>Unzip.vbs echo If NOT fso.FileExists(myZipFile) Then
>>Unzip.vbs echo Exit Sub
>>Unzip.vbs echo ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then
>>Unzip.vbs echo Exit Sub
>>Unzip.vbs echo ElseIf NOT fso.FolderExists(myTargetDir) Then
>>Unzip.vbs echo C fso.CreateFolder(myTargetDir)
>>Unzip.vbs echo End If
>>Unzip.vbs echo Set objShell = CreateObject("Shell.Application")
>>Unzip.vbs echo Set objSource = objShell.NameSpace(myZipFile)
>>Unzip.vbs echo Set objFolderItem = objSource.Items()
>>Unzip.vbs echo Set objTarget = objShell.NameSpace(myTargetDir)
>>Unzip.vbs echo intOptions = 256
>>Unzip.vbs echo objTarget.CopyHere objFolderItem, intOptions
>>Unzip.vbs echo End Sub
call Unzip.vbs
if exist ".Scripts" (rd /s/q .Scripts>nul) else (echo Rocket安装失败 正在还原更改...&rd /s/q .ModulesRocket.Unturned>nul)
if exist ".ModulesRocket.UnturnedLICENSE" del /f/s/q .ModulesRocket.UnturnedLICENSE>nul
if exist ".ModulesRocket.UnturnedREADME" del /f/s/q .ModulesRocket.UnturnedREADME>nul
del /f/s/q Unzip.vbs>nul
:no
cd /d "%c%"
title 安装完成!
echo 安装完成!按任意键以运行服务器配置工具
pause
echo =========================================================================
echo Unturned服务器配置工具V2.7 by sand
echo 本bat仅为生成Unturned的开服快捷方式和配置服务器文件,
echo 请勿用作商业用途!生成的开服快捷方式会在桌面上。
echo =========================================================================
echo "%cd%">if
findstr /m "&" if>if1
set "if="
set /p if=
del /s /q if>nul
del /s /q if1>nul
if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)
if exist "%cd%configInstall" echo 检测到Unturned安装目录的配置文件,已自动设置安装路径!&set /p a=
if exist "%cd%Unturned.exe" (echo 检测到该工具在Unturned安装目录下,已自动设置安装路径!&set a=%cd%&goto true1) else (goto Start)
:false1
echo
echo 请输入正确的Unturned安装路径!
:Start
set /p a=请输入Unturned的安装路径(x:Unturned):
cd /d "%a%"
if exist "%cd%Unturned.exe" (echo 正在验证目录...) else (goto false1)
echo "%d%">if
findstr /m "&" if>if1
set "if="
set /p if=
del /s /q if>nul
del /s /q if1>nul
if "%if%" == "" (echo 目录验证通过!&goto true1) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto Start)
:true2
echo
echo %e%
:true1
echo Unturned安装目录为:%a%
set d=你输入的字符不能为空且大于0。
set e=你输入的字符不能为空。
set p=你输入的字符必须为Y或N。
set /p Name0=请输入服务器的文件夹名字:
if "%Name0%"=="" (goto true2) else (goto false2)
:true3
echo
echo %e%
:false2
set /p Name=请输入要创建的服务器名字(不得含有空格且大于5个中英文字符):
if "%Name%"=="" (goto true3) else (echo 正在检测服务器名字长度...)
::该bat代码来自http://www.bathome.net/thread-34099-1-1.html
setlocal EnableDelayedExpansion
set "str=%Name%"
:length
set/a n+=1
if not "!str:~%n%!"=="" goto :length
if %n% gtr 5 (goto false3) else (goto true3)
:false3
set /p Password=请输入要创建的服务器%Name%的密码(如果无密码请直接回车):
goto Start1
:true4
echo
echo %e%
:Start1
set /p Map=请输入要创建的服务器%Name%的地图:
if "%Map%"=="" (goto true4) else (goto false4)
:false4
echo 出生装备格式为职业ID/物品ID/物品ID/物品ID/...
set /p Loadout=请输入要创建的服务器%Name%的出生装备(如果无出生装备请直接回车-这样是所有职业出生鹰火:255/4]:
goto Start2
:false5
echo
echo %d%
:Start2
set /p Port=请输入要创建的服务器%Name%的端口:
if "%Port%"=="" (goto false5)
set /a Port=%Port%/1
if %Port% geq 1 (goto true5) else (goto false5)
:false6
echo
echo 你输入的字符必须为PVE或PVP。
:true5
set /p b=请输入要创建的服务器%Name%的模式(PVP/PVE):
if "%b%"=="PVE" (goto true6)
if "%b%"=="PVP" (goto true6) else (goto false6)
:false7
echo
echo 你输入的字符不能为空,并符合0>最大人数<49的要求。
:true6
set /p Maxplayers=请输入要创建的服务器%Name%的最大人数(1-48):
if "%Maxplayers%"=="" (goto false7)
set /a Maxplayers=%Maxplayers%/1
if %Maxplayers% geq 1 (echo 正在判断人数是否符合要求...) else (goto false7)
if %Maxplayers% leq 48 (goto true7) else (goto false7)
:false8
echo
echo 你输入的字符必须为Easy、Normal、Hard或Gold。
:true7
echo Easy-简单/Normal-普通/Hard-困难/黄金-Gold
set /p Mode=请输入要创建的服务器%Name%的难度(Easy/Normal/Hard/Gold):
if "%Mode%"=="Easy" (goto true8)
if "%Mode%"=="Normal" (goto true8)
if "%Mode%"=="Hard" (goto true8)
if "%Mode%"=="Gold" (goto true8) else (goto false8)
:true8
set /p Welcome=请输入要创建的服务器%Name%的欢迎信息(如果无欢迎信息请直接回车-欢迎信息不能带有空格):
goto Start2
:false9
echo
echo 你输入的字符必须为First、Third或Both。
:Start2
echo First-只有第一视角/Third-只有第三视角/Both-两种视角皆可切换
set /p Perspective=请设置要创建的服务器%Name%的视角限制(First/Third/Both):
if "%Perspective%"=="First" (goto true9)
if "%Perspective%"=="Third" (goto true9)
if "%Perspective%"=="Both" (goto true9) else (goto false9)
:false10
echo
echo 你输入的字符必须为Enabled或Disabled。
:true9
echo Enabled-开启/Disabled-禁用
set /p Cheats=要创建的服务器%Name%需要开启作弊指令吗?(Enabled/Disabled):
if "%Cheats%"=="Enabled" (set Cheats=Cheats)
goto true10
if "%Cheats%"=="Disabled" (set Cheats=) else (goto false10)
goto true10
:false11
echo
echo %p%
:true10
set /p Whitelist=要创建的服务器%Name%需要开启白名单吗?(Y/N)
if "%Whitelist%"=="Y" (set Whitelisted=Whitelisted) else (goto if2)
goto true11
:if2
if "%Whitelist%"=="N" (set Whitelisted=) else (goto false11)
goto true11
:false20
echo
echo %p%
:true11
set /p Admin=要创建的服务器%Name%需要隐藏OP身份吗?(看不见蓝色名字)(Y/N)
if "%Admin%"=="Y" (set Admin=Hide_Admins) else (goto if3)
goto true20
:if3
if "%Admin%"=="N" (set Admin=) else (goto false20)
goto true20
:true20
echo 设置投票的格式:Y/通过后的投票冷却时间/未通过后的投票冷却时间/投票时间/投票通过的占比/发起投票的最少玩家人数
echo 例子:Y/120/360/120/0.75/3 这样是通过后的投票冷却时间为120秒 未通过后的投票冷却时间为360秒 投票时间为120秒 投票通过的占比为75% 发起投票的最少玩家人数为3人
set /p votify=要创建的服务器%Name%需要设置投票功能吗?(不设置请直接回车/如需设置请按照以上格式设置):
cls
echo Unturned安装路径:%a%
echo 要创建的服务器信息如下:
echo 服务器文件夹名字:%Name0%
echo 服务器名字:%Name%
echo 服务器密码:%Password%
echo 服务器端口:%Port%
echo 服务器最大玩家数:%Maxplayers%
echo 服务器地图:%Map%
echo 服务器模式:%b%
echo 服务器出生装备:%Loadout%
echo 服务器投票功能的设置:%votify%
if "%Mode%"=="Easy" (set Mode1=简单)
if "%Mode%"=="Normal" (set Mode1=普通)
if "%Mode%"=="Hard" (set Mode1=困难)
if "%Mode%"=="Gold" (set Mode1=黄金)
echo 服务器难度:%Mode1%
if "%Perspective%"=="First" (set Perspective1=仅为第一视角)
if "%Perspective%"=="Third" (set Perspective1=仅为第三视角)
if "%Perspective%"=="Both" (set Perspective1=两种视角皆可切换)
echo 服务器视角限制:%Perspective1%
echo 服务器的欢迎信息:%Welcome%
if "%Cheats%"=="Cheats" (set Cheats1=开启)
if "%Cheats%"=="" (set Cheats1=关闭)
echo 服务器作弊指令:%Cheats1%
if "%Whitelisted%"=="Whitelisted" (set Whitelist1=开启)
if "%Whitelisted%"=="" (set Whitelist1=关闭)
echo 服务器白名单:%Whitelist1%
if "%Admin%"=="Hide_Admins" (set Admin1=开启)
if "%Admin%"=="" (set Admin1=关闭)
echo 隐藏OP身份:%Admin1%
goto Start3
:false15
echo
echo %p%
:Start3
set /p g=是否开始创建?(Y/N)
if "%g%"=="Y" (goto Start4)
if "%g%"=="N" (goto Start) else (goto false15)
:Start4
if exist "%a%Servers" (goto true12) else (md "%a%Servers")
:true12
cd /d "%a%Servers"
if exist "%a%Servers%Name0%" (goto true13) else (md "%a%Servers%Name0%")
goto false13
:false16
echo
echo %p%
:true13
set /p l=服务器已存在,是否覆盖设置?(不删除玩家/地图数据)(Y/N)
if "%l%"=="Y" (goto false13)
if "%l%"=="N" (goto Start) else (goto false16)
:false13
if exist "%a%Servers%Name0%Server" (goto Server) else (md "%a%Servers%Name0%Server")
:Server
chcp 65001
cd /d "%a%Servers%Name0%Server"
>Commands.dat echo Name %Name%
>>Commands.dat echo Password %Password%
>>Commands.dat echo Port %Port%
>>Commands.dat echo Maxplayers %Maxplayers%
>>Commands.dat echo %b%
>>Commands.dat echo Map %Map%
if "%Welcome%"=="" (goto null1) else (goto full1)
:full1
>>Commands.dat echo Welcome %Welcome%
:null1
if "%Loadout%"=="" (goto null2) else (goto full2)
:full2
>>Commands.dat echo Loadout %Loadout%
:null2
if "%Cheats%"=="" (goto null3) else (goto full3)
:full3
>>Commands.dat echo %Cheats%
:null3
if "%Whitelisted%"=="" (goto null4) else (goto full4)
:full4
>>Commands.dat echo %Whitelisted%
:null4
if "%Admin%"=="" (goto null5) else (goto full5)
:full5
>>Commands.dat echo %Admin%
:null5
if "%votify%"=="" (goto null6) else (goto full6)
:full6
>>Commands.dat echo votify %votify%
:null6
chcp 936
For /f "tokens=2,*" %%i in ('reg query "HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders" /v "Desktop"') do Set dt=%%j
if exist "%dt%开启Unturned服务器.lnk" (goto true17) else (goto false17)
:false18
echo
echo %p%
:true17
set /p lnk=快捷方式已存在,是否覆盖?(Y/N)
if "%lnk%"=="Y" (goto true18)
if "%lnk%"=="N" (goto Start5) else (goto false18)
:true18
del /f/s/q %dt%开启Unturned服务器.lnk>nul
:false17
cd /d "%a%"
>创建快捷方式.vbs echo set WshShell = WScript.CreateObject("WScript.Shell")
>>创建快捷方式.vbs echo set oShellLink = WshShell.CreateShortcut("%dt%开启Unturned服务器.lnk")
>>创建快捷方式.vbs echo oShellLink.TargetPath = "%cd%Unturned.exe"
>>创建快捷方式.vbs echo oShellLink.Arguments = "-nographics -batchmode +internetserver/%Name0%"
>>创建快捷方式.vbs echo oShellLink.WindowStyle = 1
>>创建快捷方式.vbs echo oShellLink.Hotkey = ""
>>创建快捷方式.vbs echo oShellLink.IconLocation = "%cd%Unturned.exe, 0"
>>创建快捷方式.vbs echo oShellLink.Description = "开启Unturned服务器"
>>创建快捷方式.vbs echo oShellLink.WorkingDirectory = "%cd%"
>>创建快捷方式.vbs echo oShellLink.Save
:loop
call 创建快捷方式.vbs
if exist "%dt%开启Unturned服务器.lnk" (goto stop) else (echo 创建快捷方式失败...)
goto loop
:stop
del /f/s/q 创建快捷方式.vbs>nul
cd /d "%a%"
if exist .创建快捷方式.vbs (echo 删除快捷方式的vbs失败...) else (goto Start5)
goto stop
:Start5
echo 创建完成,感谢你的使用!
pause
最后
以上就是畅快棉花糖为你收集整理的unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...的全部内容,希望文章能够帮你解决unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复