【问题标题】:Check if another batch file is still running检查另一个批处理文件是否仍在运行
【发布时间】:2014-03-04 07:21:02
【问题描述】:

我想让batch1.bat 检查batch2.bat 是否正在运行。如果batch2.bat 正在运行,我不想发生任何事情。如果batch2.bat 没有运行,我希望batch1.bat 终止进程process1.exe

换句话说,我希望batch1.bat 启动batch2.bat 并等待它关闭。一旦关闭,我希望 process1.exe 结束。

我该如何写batch1.bat

【问题讨论】:

  • 您描述了两个不同的要求:检查其他脚本是否正在运行并等待其他脚本完成!
  • 嗯...好吧,batch2.bat 运行 process1.exe,如果在 process1.exe 之前关闭(手动)batch2.bat,那么 process1.exe 中的事情就会一团糟。我只是想确保 process1.exe 不会搞砸。所以我希望batch1.bat 能够监视这种情况,并确保batch2.bat 是否关闭,process1.exe 也会关闭。有点明白我在说什么?我对此很陌生,所以我不确定解决这个问题的最佳途径是什么。
  • 我已经包含了一个示例骨架。但是,如果batch2 可以关闭,batch1 也可以关闭。 “最佳”路径似乎改变了 process1 的行为
  • 如何从 batch2 运行 process1?如果使用 START /WAIT "process1.exe" 启动它,那么在 process1 正常终止之前,batch2 将永远不会自行关闭。但是,如果批处理和进程可以被恶意用户破坏,那么您就无能为力了。

标签: windows batch-file process cmd


【解决方案1】:

Batch1.cmd

@echo off
  echo 1: starting
  echo 1: calling batch2

  cmd /c "batch2.cmd"

  echo 1: back to batch1
  echo 1: end batch1

  taskkill /im process1.exe /f >nul 2>nul

Batch2.cmd

@echo off
  echo 2: starting batch2
  echo 2: in batch2
  pause
  echo 2: leaving batch2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 2013-04-27
    相关资源
    最近更新 更多