小编Fri*_*ave的帖子

如何判断我的批处理文件是否正在运行?

我有一个从 AT 命令运行的批处理脚本,并且可能会多次运行。当它启动时,我需要它检测它是否已经在运行,如果是,立即退出(第二个)。

  1. 它必须健壮,并处理脚本意外退出(即,我无法在进入时设置标志并在退出时清除它)
  2. 它必须在远程桌面会话中运行
  3. 我一直在使用 Powershell v2 的 XP,但如果我不能在批处理/powershell 或 vbs 中执行,请不要介意编写一个小 exe
  4. 脚本必须最小化运行,所以我用 Start "NAME" /MIN %COMSPEC% /C "MyScript.bat" 启动它
  5. 其他 cmd 窗口可能已打开,因此我需要检查正在运行的脚本
  6. 批处理脚本以 SYSTEM 用户身份运行,但我无法使用任何 WMI

我正在使用 PowerShell Get-Process 查看 MainWindowTitle,但是当远程连接到计算机时这不起作用,因为脚本可能正在运行,但未显示在此远程连接实例中。在这种情况下,Get-Process 可以看到 cmd 进程,但 MainWindowTitle 是空白的。

我试过 Get-Process 并查看了扩展的 StartInfo.EnvironmentVariables 属性,但看不到如何创建 env var 以便它出现在属性中。

我想过在启动命令中使用/WAIT,然后AT会一直打开直到它完成,但是包含AT的脚本没有被最小化

有任何想法吗?

windows powershell vbscript batch-file

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

batch-file ×1

powershell ×1

vbscript ×1

windows ×1