有一个包含自动生成的批处理脚本的文件夹。例如 - 一个cron作业运行一个脚本,从数据库中获取所有新行,cURLs到我的Windows服务器,将批处理文件写入具有特定ID的文件夹。
然后我有一个辅助批处理文件,我需要一次运行所有这些批处理文件,而不是顺序运行。原因是在任何时候,文件夹中可以有100个批处理脚本,平均每个3分钟,即5个小时,而测试表明所有100个一次都运行良好,只需要5分钟。
到目前为止,我有:
FORFILES /S /P "./batch_files" /M *.bat /C "cmd /c call @file /Q "
循环遍历所有文件,但只按顺序运行它们。我在考虑将每个文件名分配给变量并使用“&”运营商所以它基本上是
FORFILES /S /P "./batch_files" /M *.bat /C "cmd /c variable = variable+"&"+@fname /Q "
call variable
但是在正确的批处理文件格式化中(我很擅长CMD)。
另外我不知道“变量”是否是全局的,因为它在每个forfiles上运行一个单独的cmd实例?
答案 0 :(得分:1)
而不是:
Cmd /C Call @file /Q
使用:
Start Cmd.exe /Q /C @file
Start
开始一个过程并立即返回。
答案 1 :(得分:1)
你做不到。 START命令启动另一个进程并立即返回以执行批处理文件中的下一行IF并且仅在执行的进程是32位图形Windows应用程序时执行。如果不是,那就是CMD.EXE的情况,那么START等待执行的命令结束。
答案 2 :(得分:1)
上述答案的组合应有所帮助。
假设您要搜索位于根文件夹中的文件夹batch_files
的内容,则会提供以下内容:
FORFILES /S /P "\batch_files" /M *.bat /C "cmd /C start call @file"
EXIT /B
这对我有用。