2

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

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

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

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

什么可能导致这个问题?

4

1 回答 1

0

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

考虑添加

setlocal 

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

于 2013-03-22T18:46:40.360 回答