除此之外,我是家庭网络及其所有服务的系统管理员。我丈夫想在家庭实验室上运行游戏的专用服务器,但在设置时遇到了一些问题。最终导致我们放弃并在云中租用 Windows VPS。
我想要一个可以保持运行的脚本,该脚本将更新专用服务器程序,启动服务器,然后在专用服务器崩溃时尝试更新它。为了在 PowerShell 中执行此操作,您需要一个如下脚本:
Set-Location - Path C:\Games\Motortown while ( $true ) { & C:\Users\Administrator\Software\steamcmd . exe blah blah Start-Process \ - FilePath C:\Games\Motortown\server . exe \ - Wait \ - NoNewWindow \ - ArgumentList "Jeju_World?listen?" , "-server" , "-log" , "-useperfthreads" , "-Port=7777" , "-QueryPort=27015" }
重要的部分是Start-Process
cmdlet,它允许您启动 GUI 程序,然后阻止执行直到程序退出。如果您不这样做,那么当程序在后台启动时,脚本将继续执行下一行。这让steamcmd很不高兴。
为了将命令行参数传递给进程,您需要将-ArgumentList
标志与程序的参数一起使用。这类似于在 shell 脚本中将参数传递给程序的方式:
some-program arg1 arg2 arg3
除了在 PowerShell 中,它看起来更糟:
Start-Process - FilePath some-program . exe - ArgumentList "arg1" , "arg2" , "arg3"
我希望这对你有帮助。