如何创建 Windows 批处理脚本来执行此操作?

如何创建 Windows 批处理脚本来执行此操作?

我正在运行 Windows-7。我想创建一个 Windows 批处理文件,其工作方式如下:

  1. 使用指定参数运行 exe。等待该 exe 完全执行。(该 EXE 本质上是录制在线视频流,预计录制时间为 1 小时 5 分钟)
  2. 但是,如果 exe 在规定的时间段(1 小时 5 分钟)之前退出(停止记录并退出执行),则在剩余时间内使用不同的参数执行相同的 exe。当总时间段(包括步骤 1 中 EXE 的第一次启动)达到 1 小时 5 分钟时,终止 EXE 执行。
  3. 继续使用不同的参数执行该 exe,直到累计时间达到 1 小时 5 分钟。
  4. 当批处理文件运行 1 小时 5 分钟时,终止 EXE 执行并退出批处理文件执行。

笔记: 该 exe 有两个参数:输入流地址和输出文件名。上述 EXE 每次运行时唯一会发生变化的参数是文件名,当第一次运行在 1 小时 5 分钟之前退出时,文件名会从第一次运行中的“FileName”更改为“FileName2”。并且文件名将递增为 Filename2、Filename3 等等,直到此批处理文件的累计运行时间达到 1 小时 5 分钟。有关实际示例,请参阅此命令:

"C:\Windows\System32\rtmpdump.exe" -i rtmpt://154.500.69.6/live -o "C:\Users\user\Desktop\Filename.extension"

上面提到的命令是第一次运行的命令。在后续运行中(仅当第一次执行在 1 小时 5 分钟的目标之前退出时才需要),只需将文件名更改为 Filename2.extension,如下面的命令所示:

"C:\Windows\System32\rtmpdump.exe" -i rtmpt://154.500.69.6/live -o "C:\Users\user\Desktop\Filename2.extension"

并且这个序列需要持续直到该批处理文件的累计运行时间达到1小时5分钟。

答案1

Batch 无法直接执行此操作。Batch 通常所做的只是运行外部程序。它具有跳转/转到/循环的功能,并且可以使用变量,尽管使用变量有点麻烦。

因此,由于人们使用 Batch 的大部分操作是运行外部程序,因此您的目标不是真正学好 Batch。您的目标是找到一个可以完成您想要做的事情的程序。

使用命令行参数运行程序是可行的。TASKLIST 可以帮助确定程序是否正在运行,或者 WMIC。但是,检查时间可能不是最简单的事情。

另一种选择是使用 Windows Scripting Host (WSH),它允许您运行 JScript(本质上是 JavaScript)或 VBScript。这是通过 CScript 程序(或 WScript 程序)完成的。这种方法可能会让您查看时间,尽管 StackOverflow(编程)而不是 SuperUser(通用计算)更适合回答详细信息。

(如其他地方所述,PowerShell 也可能是一种可行的替代方案,它可能比 Batch 更容易。)

您可能不想检查录制是否持续了 65 分钟,而是想检查程序的 ERRORLEVEL(也称为错误代码、退出代码或返回代码)。许多程序都使用它来轻松传达某个过程是成功还是失败。具体方法取决于您使用的编程语言。

相关内容