每隔几分钟自动执行CMD命令的Python程序

时间:2018-10-09 15:56:22

标签: python windows cmd automation

我正在尝试使用os.system()方法编写一个程序来调用CMD命令,但我有些迷茫。我想让它每隔几分钟检查一次防火墙是否启用,如果没有启用,请发送命令启用它。 我是否可以将其输出到txt文件,然后循环遍历该文件以检查关键字,一旦找到这些关键字,它就会在CMD中执行打开防火墙打开命令?

我也不知道最好是创建程序,然后将其链接到任务计划程序中,还是让程序循环运行。

我还想做同样的事情,它发送命令来检查CMD中的用户,如果有的话,所有帐户密码都会更改。

我也在寻找利用子过程编写它的方法。关于最佳方法或方法的任何建议?我正在使用python 3.5。

1 个答案:

答案 0 :(得分:0)

subprocess.check_output的示例:

query User {
  user {
    ...userFields
  }
}

fragment userFields on User {
  _id,
  email,
}

我认为“任务计划程序”是使Python流程自动化的最佳方法。 看看这个答案:Scheduling a .py file on Task Scheduler in Windows 10

顺便说一句(设置Windows德语),我有变音符号,所以我使用如下脚本:

import subprocess          
cmd = "netsh advfirewall show allprofiles"

# returns output as byte string
returned_output = subprocess.check_output(cmd)
# print(type(returned_output))
# using decode() function to convert byte string to string
print('CMD OUTPUT:' + returned_output.decode("utf-8", "ignore")) 
# I HAVE CMD ON GERMAN LANGUAGE
# EIN / AUS [GER] for ON / OFF in Domainprofile:
print('CMD OUTPUT: ' + returned_output.decode("utf-8", "ignore").split("Status")[1].split("Firewallrichtlinie")[0].strip())

if returned_output.decode("utf-8", "ignore").split("Status")[1].split("Firewallrichtlinie")[0].strip() == "AUS":
    # set FIREWALL ON
else:
    # everything ok :)

您可能必须在解码时将编码适应本地窗口 看这个:Python subprocess check_output decoding specials characters