【问题标题】:Script creating multiple processes创建多个进程的脚本
【发布时间】:2012-12-29 13:24:13
【问题描述】:

我有一个批处理脚本,它接收电影文件的输入目录和文本文件的输出目录。 该脚本运行一个将电影文件解析为文本文件的外部应用程序。 该脚本还能够一次(并行)运行该“电影解析器”的多个进程。

我遇到了这个奇怪的问题: 当我在某个目录(其中包含一个或多个文件)上运行脚本时,它可以完美运行。如果我运行脚本并告诉它每次加载 2 部电影(例如),它也可以正常工作,并且我看到任务管理器中运行了 2 个进程。 当我在不同的目录上运行相同的运行时,我得到了相同的结果。

但是,这很奇怪:当我打开控制台,在第一个控制台的一个目录(其中有一个文件)上运行脚本,然后在第二个目录(其中有一个文件)上运行脚本) 在第二个控制台中,突然,当查看任务管理器时,我看到 4 个正在运行的进程而不是 2 个。

如果我增加并行进程,我会在任务管理器中获得更多进程。

什么可能导致这个问题?

【问题讨论】:

  • 向我们展示批处理文件...我们需要更多信息。
  • 1 -> 2 然后 2 -> 4,听起来很合理...
  • 不,你看,当我用一个文件运行一批时,我看到一个进程。然后,我巧妙地运行了另一批,而第一个仍在运行,突然间,我看到了 4 个进程。所以它是 1->1 和 2->4。
  • 进程名称是否称为 Batchrun,来自该网站:geardownload.com/system/batchrun-download.html 如果是,那么 2 个问题:1)它在 XP 和 Win7 上的行为方式完全相同吗? 2)进行转换的程序是否有可能有错误?

标签: batch-file batch-processing


【解决方案1】:

这可能取决于批处理文件中的变量。大概您正在运行的批处理文件的两个实例都使用相同的变量来存储文件的路径。例如,如果您正在使用系统环境的 %1%(跨进程共享),则不同的实例可能会交叉通信。

考虑添加

setlocal 

到您的批处理文件。例如,请参阅this Microsoft documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多