批量文件将行插入打开的窗口

时间:2017-07-02 05:05:34

标签: windows batch-file cmd

我确信这是可行的,我不是百分之百确定如何。 我在我的个人计算机上为Don's starve Together(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个连接的服务器(Master& Caves),并将它们作为我桌面上的开放式CMD窗口。 这一切都运行良好等没有问题。

但是当我关闭计算机时,我必须使用命令" c_shutdown(true)"在两个窗口中关闭并保存每个服务器。 (我不能关闭窗户,它不会保存) 由于CMD窗口非常活跃,因此很难在其中输入任何内容。

我的问题是;有没有办法制作一个可以插入行的.bat文件" c_shutdown(true)"进入每个窗口执行命令?

然后我基本上只需在我的桌面上留下一个快捷方式,然后双击它就可以完全保存和关闭服务器而不会有太多麻烦。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这完全取决于标题栏中的标题。假设标题是Master和Cave,你可以做类似

的事情
@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

我更喜欢用@来回声 - 你可以在想要观看的行上将其删除,而不是在执行时观察所有行