0

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

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

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

谢谢!

GPC

4

2 回答 2

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
于 2012-05-03T13:44:33.603 回答
0

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

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

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

于 2012-05-03T13:57:33.960 回答