【问题标题】:Remove spam from loop command in batch file从批处理文件中的循环命令中删除垃圾邮件
【发布时间】:2016-02-05 17:57:18
【问题描述】:

这就是我目前正在做的事情,它可以工作......但它并不漂亮。

:scan<br>
echo "Running scan again..."<br>
for /F %%I in ('%SystemRoot%\System32\schtasks.exe /query /s SERVER /fo list /tn "TASK" ^| %SystemRoot%\System32\find.exe /c "Running"') do if "%%I" 
== "3" goto :scan

如果它的返回值为 3,它会一遍又一遍地重复,直到结果发生变化。

这行得通。我想知道的是,我怎样才能让它不会一遍又一遍地用Running scan again... 向窗口发送垃圾邮件直到它结束?我可以只显示Running scan again... 的一个实例,但让任务继续吗?

【问题讨论】:

  • 使用第二个标签?
  • 使用CLS 命令。

标签: batch-file scripting


【解决方案1】:

详细说明斯蒂芬的回应。在要省略的文本下方放置另一个标签,然后将 goto 更改为指向该标签。例如,请参阅下面的 :scannolabel 更改

:scan
echo "Running scan again..."
:scannolabel
for /F %%I in ('%SystemRoot%\System32\schtasks.exe /query /s SERVER /fo list /tn "TASK" ^| %SystemRoot%\System32\find.exe /c "Running"') do if "%%I" == "3" goto :scannolabel

【讨论】:

  • GOTO 命令的标签前不需要冒号。
  • OP 的优点。我选择不更改解决方案不需要但也应该提及的任何内容。
猜你喜欢
  • 2021-07-17
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 2020-09-29
相关资源
最近更新 更多