从任务计划程序运行 .bat 文件时,CLS (ClearScreen) 命令不起作用

问题描述 投票:0回答:1

我正在尝试构建一个批处理文件(使用 MS 记事本)来完成以下任务:

  1. 向控制台写入消息(“正在运行任务 X - 不要中断”)

  2. 运行一些命令,并将输出写入日志文件

  3. 暂停

  4. 清除屏幕(CLS)

  5. 向控制台写入不同的消息(“正在运行任务 Y - 不要中断”)

  6. 运行更多命令,并将输出写入日志文件

  7. 暂停直至手动清除屏幕

当我通过双击直接运行测试文件时,“清屏”命令按预期工作。 (当然,步骤2和6的输出也会显示在屏幕上,而不是写入日志文件)

当我从任务计划程序运行文件时,CLS 被忽略,两条消息都会显示在屏幕上 (在这种情况下,步骤 2 和 6 的输出被正确定向到日志文件)

从任务计划程序运行文件时如何正确清除屏幕?

我的批量测试文件:

@Echo OFF

mode con: cols=85 lines=40

echo ===  This machine is currently performing task "X"   Please do NOT interrupt   === >con

Dir PlaceHolder*

Pause >con

@CLS

echo ===  This machine is currently performing task "Y"   Please do NOT interrupt   === >con

Dir PlaceHolder2*

Pause >con

@Exit
command windows-task-scheduler cls
1个回答
0
投票

事实证明,如果您只使用“@CLS”(就像我所做的那样),Clearscreen 命令会定向到 LOG 而不是屏幕。由于日志无法清除,因此批处理文件会在下一行输出前面添加一个向上箭头,然后就到此为止了。 您需要确保将 Clearscreen 命令显式路由到控制台/屏幕 (@CLS >con),在这种情况下它将按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.