2017-07-02 69 views
0

我确信这是可以做到的,我只是不是100%确定如何。 我在我的个人计算机上托管专用服务器不会同时挨饿(DST),我使用一个.bat文件来启动它:批处理文件将行插入打开的窗口

h:\steamcmd\steamcmd.exe +login anonymous +app_update 343050 validate +quit 
cd /D "h:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\bin" 
start dontstarve_dedicated_server_nullrenderer -console -cluster CarnageServer -shard Master 
start dontstarve_dedicated_server_nullrenderer -console -cluster CarnageServer -shard Caves 

它基本上开始2级连接的服务器(主&洞穴)并将它们作为我桌面上开放的CMD窗口。 这一切运行良好等没有问题。

但是,当我关闭我的电脑,我必须在两个窗口中使用命令“c_shutdown(true)”来关闭并保存每台服务器。 (我不能关闭窗口,它不会保存) 由于CMD窗口非常活跃,因此很难输入任何内容。

我的问题是;有没有办法让一个.bat文件可以在每个窗口中插入“c_shutdown(true)”行来执行命令?

然后,我基本上可以在我的桌面上留下一个快捷方式,双击它保存并关闭服务器,没有太多麻烦。

感谢您的任何帮助。

+1

尝试使用[sendkeys.bat](https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/sendKeys.bat) - 'call sendkeys.bat“server_console_title”“c_shutdown(true)” ' - 它应该在单独的cmd会话中执行。 – npocmaka

回答

0

这完全取决于标题栏中的标题。假设标题大师和洞,你可以不喜欢

@setlocal 
@set script="%temp%\exit.js" 
@echo var oShell = new ActiveXObject('WScript.Shell') > %script% 
@echo oShell.AppActivate(WScript.arguments(0)) >> %script% 
@echo oShell.SendKeys('c_shutdown(true)\r') >> %script% 

@cscript //NoLogo %script% Master 
@cscript //NoLogo %script% Cave 
@del %script% 
@endlocal 

我喜欢用@呼应关 - 你可以删除你希望他们执行

看而不是看所有线路的线
相关问题