批处理文件-如何将命令发送到命令行进程



我有一个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)"的地方,用一个未使用的、未被修改的目录替换它和()。无论您在哪里看到"(触发文件)",都要将其和()替换为与您在所有其他地方看到"(触发器文件)"相同的文件名。"(主运行文件)"也是如此,但它的名称必须与"(触发文件)"不同。

我知道这可能会让人困惑。不要害怕评论和提问。我很乐意澄清。

相关内容

  • 没有找到相关文章

最新更新