0

実際の n00b から powershell へ。コミュニティが非常に単純なスクリプトを作成するのを手伝ってくれるかどうか疑問に思っていました.

本当に、必要なことはすべて Windows バッチ ファイルで実現できますが、これらは一度に 1 つのタスクしか完了しません。マスター スクリプト (powershell スクリプト) で個々のバッチ プロセスを順番に呼び出す必要があります。つまり、Batch_1 を実行してから、Batch_1 が呼び出すプログラムのタスクが終了したときにのみ Batch_2 を実行したいと考えています。

これは可能ですか?何らかの形式の IF THEN ELSE タイプのシナリオを使用する場合ですか、それともイベントが発生するのを powershell に待機させる方法はありますか?

ありがとう!

GPC

4

2 に答える 2

0

通常の Windows シェル (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 に答える