【发布时间】:2019-04-30 22:08:28
【问题描述】:
如果我启动 cmd.exe,进入 python 控制台并测试以下代码,控制台会按预期打印到一行。
如果我通过从任务调度程序启动 python 文件来运行相同的代码,它会每秒在新行上打印出相同的句子。
我希望它的行为与我通过 cmd.exe 运行它的行为相同。(即:仅打印到一行并每次覆盖当前行)
我尝试让任务调度程序在 cmd.exe 中运行 python 脚本,但它似乎只是将 taskeng.exe 作为外壳运行。
代码
import time
reportToCheck = 'Application and Acquisition Loader2'
for x in range(5):
for y in range(60):
print("\rscript - %s - not yet complete, checking again in: %02d:%02d" %(reportToCheck, 4-x, 59-y)),
time.sleep(1)
预期:仅打印到一行
实际(在任务调度程序中运行时):每次打印到新行
【问题讨论】:
-
任务的可执行参数和命令行参数是什么?看来您正在通过 Python 3 运行任务。
-
运行 python.exe from cmd.exe(不是 in cmd.exe)没有区别。 CMD shell 简单地通过
CreateProcessW生成进程并等待它退出。唯一的交互,也就是这样说有点牵强,是 Python 继承了 CMD 的控制台而不是分配自己的控制台。