真正的n00b到powershell。我想知道社区是否可以帮我构建一个非常简单的脚本。
真的,我可以在Windows批处理文件中实现我所需要的一切 - 但这些只能一次完成一项任务。我想要一个主脚本(一个powershell脚本)依次调用每个批处理过程。也就是说,我想运行Batch_1,然后只有当Batch_1调用的程序中的任务完成时才运行Batch_2。
这可能吗?是使用某种形式的IF THEN ELSE类型场景还是有办法使PowerShell等待某些事件发生?
谢谢!
GPC
答案 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),那么这会变得更棘手,因为那些执行异步。如果是这种情况,请更新您的问题以表明。