用于按顺序运行多个批处理文件的Powershell脚本

用于按顺序运行多个批处理文件的Powershell脚本,powershell,Powershell,真正的n00b到powershell。我想知道社区是否可以帮助我构建一个非常简单的脚本 实际上,我可以在windows批处理文件中实现我所需的一切,但这些批处理文件一次只能完成一项任务。我想要一个主脚本(powershell脚本)依次调用每个单独的批处理过程。也就是说,我希望运行Batch_1,然后仅当Batch_1调用的程序中的任务完成时才运行Batch_2 这可能吗?是使用某种形式的IF-THEN-ELSE类型的场景,还是有办法让powershell等待某个事件发生 谢谢 GPC您可以使用常

真正的n00b到powershell。我想知道社区是否可以帮助我构建一个非常简单的脚本

实际上,我可以在windows批处理文件中实现我所需的一切,但这些批处理文件一次只能完成一项任务。我想要一个主脚本(powershell脚本)依次调用每个单独的批处理过程。也就是说,我希望运行Batch_1,然后仅当Batch_1调用的程序中的任务完成时才运行Batch_2

这可能吗?是使用某种形式的IF-THEN-ELSE类型的场景,还是有办法让powershell等待某个事件发生

谢谢

GPC

您可以使用常规windows shell(cmd.exe)中的命令来解决此问题。以下命令执行当前目录中的每个cmd文件:

FOR %f IN (*.cmd) DO %f
以下命令按照内部“DIR”命令返回的顺序执行每个文件:

FOR /F %f IN ('DIR /b /oen *.cmd *.bat') DO %f

通常,从批处理文件到控制台程序的调用是同步的。用于此的PowerShell脚本非常简单:

master-script.ps1 contents:
---------------------------
c:\batch1.bat
c:\batch2.bat
现在,如果批处理文件正在调用Windows子系统exe(非控制台exe),那么这会变得更加棘手,因为这些文件是异步执行的。如果是这种情况,请更新您的问题以表明这一点