使用Windows批处理计数当前正在执行的进程数

时间:2018-08-12 21:24:25

标签: windows batch-file

我有一个批处理文件的以下摘要,我的目的是确定当前命令'export_document_new.bat'的执行次数。如果大于6个作业,我希望当前处理等待。基本上,如果并行作业的数量少于6,我将产生一个新的并行作业。但是,下面的这个小片段似乎表现得非常出乎意料-尽管正在进行的并行作业数量很多,但我始终会看到PROCESS_COUNT的计数设置为1。

如果我有两个export_document_new.bat作业正在进行中,那么在第一个作业开始之前,父进程中该PRCOESS_COUNT的值将为0。这是预期的。当父级生成第一个export_document_new.bat时,我看到父级进程中此变量的值现在设置为1。这也是预期的。但是,即使父级现在生成了另一个进程,该值仍将设置为1。这是不期望的。我希望它能列出2。

请分享您对我可能会想念的东西的看法。

:waitForExportDocumentExes
:CHECK
set /A PROCESS_COUNT=0      
for /F "delims=" %%a in ('tasklist /FI "imagename eq cmd.exe" /FO list /v ^| findstr /C:"export_document_new.bat"') do set /a PROCESS_COUNT=%PROCESS_COUNT%+1    
if "%PROCESS_COUNT%" GEQ "6" (      
    sleep 1
    goto :CHECK     
) 
exit /b

0 个答案:

没有答案