【问题标题】:Start Another Batch File Only Once仅启动另一个批处理文件一次
【发布时间】:2014-07-17 14:22:41
【问题描述】:

我是脚本新手,我遇到了一个我可以自己解决的问题。

我有一个脚本可以运行几次 ( 3-10 )。我需要在脚本末尾有一个循环来运行另一个批处理文件,该文件将发送邮件,该脚本运行正常。

问题是它总是发送 3-10 封邮件(因为脚本运行多次)

无论主脚本运行多少次,我都需要在脚本末尾有一个循环,说明只运行一次批处理文件

我用过这个:

FOR %%A IN (1) DO (
START C:\dodavka\send_mail.bat
)

这不起作用。

【问题讨论】:

  • 最好的解决方案取决于您是否需要发送有关每次运行的信息,例如在当天的单个日志文件中。一个问题是:脚本如何判断它是否已经完成了一天的运行?是在一天结束时创建了文件还是删除了特定文件?

标签: loops batch-file


【解决方案1】:

在您的子脚本代码中设置一个环境变量,在运行此批处理文件期间检查该环境变量是否已设置。

您必须使用 CALL 关键字调用批处理文件,以便将该批处理文件中设置的值保存在内存中。

在您的主代码中:

If "%MYVARIABLE%" == "" THEN   CALL SUBBATCHFILE

在您的子代码中:

SET MYVARIABLE = "SET"

【讨论】:

  • 或者您可以在IF 语句中使用括号,并从同一脚本而不是子脚本设置变量。这样更安全,因为您不依赖其他批处理文件的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多