如何将命令发送到命令行进程

时间:2015-06-22 18:20:29

标签: batch-file command-prompt

我有一台Garry的Mod服务器我希望它每12小时自动启动一次。我可以制作一个脚本,每隔12小时执行一次命令,但我不知道如何发送命令" quit"进程" srcds.exe"。我看到了类似的东西 echo quit |srcds.exe 我尝试过但它没有用。如何使用MS-DOS(批处理文件)执行此操作?

2 个答案:

答案 0 :(得分:0)

您正在寻找taskkill命令:

taskkill /f /im srcds.exe

它会杀死任务srcds.exe

答案 1 :(得分:0)

如果您可以编辑要发送命令的程序,可以尝试将此命令行插入到您希望终止的位置:

if exist (directory)\(triggering file).txt del /Q (directory)\(triggering file).txt & quit

这将扫描触发程序将创建的文件,将其删除,然后退出程序。如果该文件不存在,程序将忽略该行并继续前进,就像命令行不在那里一样。

只要您想终止主程序,就可以运行触发程序。该计划应该是:

echo.>"(directory)\(triggering file).txt"
exit

以上是最简单的方法。如果你想让它变得更加白痴,那就是#34;您可以添加为主程序的第一行:

echo.>"(directory)\(main run file).txt"

这将以与触发程序相同的方式编写.txt文件。这告诉触发程序主程序正在运行并且可以终止它。您还必须将主程序中的上述IF语句更改为:

if exist (directory)\(triggering file).txt del /Q (directory)\(main run file).txt & del /Q (directory)\(triggering file).txt & quit

最后,将触发程序更改为:

if not exist (directory)\(main run file).txt quit
echo.>"(directory)\(triggering file).txt"
quit

一些最后的笔记,无论我在哪里"(目录)"用其他未使用的,未触及的目录替换它和()。无论你在哪里看到"(触发文件)"用一个与你看到的所有其他地方相同的文件名替换它和()"(触发文件)"。同样适用于"(主要运行文件)"但它必须有一个不同的名称然后"(触发文件)"。

我知道这可能令人困惑。不要害怕发表评论并提出问题。我很乐意澄清。