我有一个Garry‘s Mod服务器,我希望它每12小时自动启动一次。我可以制作一个脚本,它每12小时执行一个命令,但我不知道如何将命令"退出"发送到进程"srcds.exe"echo quit |srcds.exe
我试过了,但没用。如何使用MS-DOS(批处理文件)执行此操作?
您正在寻找taskkill命令:
taskkill /f /im srcds.exe
它终止了srcds.exe
如果你可以编辑你想发送命令的程序,你可以尝试将这个命令行插入到你想终止的地方:
if exist (directory)(triggering file).txt del /Q (directory)(triggering file).txt & quit
这将扫描触发程序将创建的文件,将其删除,然后退出程序。如果文件不存在,程序将忽略该行并继续前进,就好像命令行不存在一样。
只要您想终止主程序,就可以运行触发程序。该程序应为:
echo.>"(directory)(triggering file).txt"
exit
上面是最简单的方法。如果你想让它更"防白痴",你可以在主程序的第一行添加:
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
只是一些最后的注释,在我有"(directory)"的地方,用一个未使用的、未被修改的目录替换它和()。无论您在哪里看到"(触发文件)",都要将其和()替换为与您在所有其他地方看到"(触发器文件)"相同的文件名。"(主运行文件)"也是如此,但它的名称必须与"(触发文件)"不同。
我知道这可能会让人困惑。不要害怕评论和提问。我很乐意澄清。