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

时间:2012-05-03 13:29:10

标签: powershell

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

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

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

谢谢!

GPC

2 个答案:

答案 0 :(得分:0)

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

FOR %f IN (*.cmd) DO %f

以下命令按顺序执行内部'DIR'命令返回的每个文件:

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

答案 1 :(得分:0)

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

master-script.ps1 contents:
---------------------------
c:\batch1.bat
c:\batch2.bat

现在,如果批处理文件正在调用Windows子系统exe(非控制台EXE),那么这会变得更棘手,因为那些执行异步。如果是这种情况,请更新您的问题以表明。