我想知道为什么我不能用另一个函数终止从一个函数产生的批处理文件。在
我要做的是通过Telebot在我的专用计算机上管理批处理文件。在
我的test.bat
文件:
在
title test.bat
timeout /t 999
我编写了一个单独的模块,其中包含启动和终止此批处理文件的函数: 在
^{pr2}$当我使用/start_test
命令启动批处理文件时,它工作正常,批处理文件启动正常:
import telebot
import sidimanager
bot = telebot.TeleBot('TOKEN')
sidim = sidimanager.sidim()
@bot.message_handler(commands=['start_test'])
def handle_start_test(message):
sidim.launch_test()
bot.reply_to(message, 'Test .bat file has been successfuly launched.')
但当我试图用/kill_test
命令终止此批处理时,批处理文件忽略了这一点并继续工作:
@bot.message_handler(commands='kill_test')
def handle_kill_test(message):
sidim.kill_test()
bot.reply_to(message, 'Test .bat file has been successfuly killed.')
我怎么能杀了它?在
我正在通过一个新的
cmd.exe
进程调用批处理。在某些情况下,它感觉批处理中的命令是在“后台”中运行的:现在,您将批处理隔离在一个新的CMD进程中运行,可以通过Popen使用
taskkill /F /PID 1234
轻松地终止该进程。在注意:根据“主脚本”的启动方式,您可能需要提供
cmd.exe, taskkill.exe and your batch
的完整路径。在相关问题 更多 >
编程相关推荐