Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 创建多个进程的脚本_Batch File_Batch Processing - Fatal编程技术网

Batch file 创建多个进程的脚本

Batch file 创建多个进程的脚本,batch-file,batch-processing,Batch File,Batch Processing,我有一个批处理脚本,它接收电影文件的输入目录和文本文件的输出目录。 该脚本运行一个外部应用程序,将电影文件解析为文本文件。 该脚本还能够同时(并行)运行该“电影解析器”的多个进程 我有一个奇怪的问题: 当我在某个目录(其中有一个或多个文件)上运行脚本时,它工作得非常好。如果我运行脚本并告诉它每次一次加载2部电影(例如),它也可以正常工作,并且我看到任务管理器中有2个进程在运行。 当我在不同的目录上运行相同的运行时,我得到相同的结果 但是,这很奇怪:当我打开控制台,在第一个控制台的一个目录(其中有

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

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

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

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


什么可能导致此问题?

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

考虑添加

setlocal 

到您的批处理文件。看,例如,.

显示批处理文件…我们需要更多信息。1->2然后2->4,听起来很合理…不,你看,当我用一个文件运行一个批处理时,我看到一个进程。然后,我用一个wile运行另一批,而第一批仍在运行,突然,我看到4个进程。所以它是1->1和2->4。这个网站上的进程名是Batchrun吗:如果是,那么有两个问题:1)它在XP和Win7上的行为完全相同吗?;以及2)进行转换的程序是否可能存在错误?