【发布时间】:2022-10-21 20:32:33
【问题描述】:
我在 windows cmd shell 中运行 pogram “xxx”。 使用 python 脚本,我想检查这个特定的进程“xxx”是否被冻结。 如果是这样,它应该重新打开该过程
os.system(r'xxx.bat')
但随后python脚本不再检查,因为它正在运行进程......
如何打开另一个独立的 CMD 终端,以便 python 脚本在打开 shell 后立即再次开始检查?
【问题讨论】:
-
您只向我们展示了从 python 运行批处理文件的代码,如果您希望我们帮助您解决特定问题,我们需要更多具体信息、更多代码、调试以及会发生什么。
-
os.system 的 Python 文档将这个函数描述为多年来已弃用。在新的编码 Python 脚本中不应再使用它。应该使用subprocess module,它使Python 脚本编写者可以完全控制
python.exe如何调用Windows 内核库函数CreateProcess 以从脚本中在Windows 上运行可执行文件。 -
可以使用os.environ 来获取环境变量
SystemRoot的字符串值与字符串"\\System32\\cmd.exe"连接以获取最古老和最不强大的脚本解释器的完全限定文件名,仍然可以在Windows 上使用它来运行它subprocess函数,参数为/D和/C,以完整路径为当前目录的批处理文件名可以是启动python.exe处理Python 脚本时的任何目录,不能是包含Python 脚本的目录和批处理文件。 -
但我认为根本不需要整个批处理文件,因此也不需要 Windows 命令处理器,因为批处理文件包含任何命令行,同样可以使用 Python 脚本中的 Python 代码来解决@987654326 @。所以我强烈建议后退一步,思考要解决的真正任务是什么,并为要解决的真正任务编写适当的 Python 代码,或者至少在问题中解释真正的任务,以便 Python 编程专家可以在 Python 代码上提供帮助为真正的任务。
标签: python batch-file cmd operating-system os.system