【问题标题】:Powershell script to run multiple batch files in orderPowershell脚本按顺序运行多个批处理文件
【发布时间】:2012-05-03 13:29:09
【问题描述】:

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

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

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

谢谢!

GPC

【问题讨论】:

    标签: powershell


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      通常从批处理文件调用控制台程序是同步的。一个 PowerShell 脚本很简单:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-20
        • 2013-06-03
        • 2012-10-20
        • 2013-10-20
        • 2013-02-18
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        相关资源
        最近更新 更多