2016-04-02 21 views
1

私は60秒ごとに新しいタスクをチェックする2つの.ps1スクリプトを持っており、同時にそれらを実行したいと思います。私はそれらを毎日使用し、それらを始めることは少し迷惑になります。 理想的には、私はそれらの2つを実行するスクリプトを書くことができます。複数のPowershellスクリプトを同時に実行するには?

問題は、ある時点で停止しないため、次々に開始するだけではなく、新しいPS ISEインスタンスを開くコマンドが見つからないということです。ただし、1つのインスタンスで両方のスクリプトを同時に実行することはできません。 Ctrl + Tオプションは完璧ですが、同等のコマンドが見つかりません。

これを解決する方法を知っている人はいますか? ありがとう!

+0

ISEで2つのスクリプトを実行する必要がありますか?はいの場合:なぜですか? – Rob

+0

はい、どちらもローカルモジュールをロードしていますので... –

+0

ISEなしでモジュールをロードできます。 [link](https://msdn.microsoft.com/en-us/library/dd878284%28v=vs.85%29.aspx) – Rob

答えて

2

Powershell 3.0+をお持ちの場合はworkflowsを使用できます。それらは関数に似ていますが、コマンドを並列に実行できるという利点があります。

ので、あなたのワークフローは、このようなものになるだろう:

workflow RunScripts { 
    parallel { 
     InlineScript { C:\myscript.ps1 } 
     InlineScript { C:\myotherscript.ps1 } 
    } 
} 

ワークフロー機能のように振る舞うことに注意してください。最初にキャッシュにロードしてから、RunScriptsコマンドを実行して呼び出す必要があります。

より多くの情報: https://blogs.technet.microsoft.com/heyscriptingguy/2013/01/09/powershell-workflows-nesting/

+0

ただし、すべてのコマンドレットがワークフローでサポートされているわけではありません。スクリプトは、ワークフロー内で期待どおりに動作しない場合があります。 ワークフローは素晴らしいですが、内部のコードが "ワークフローで実行する"という考えを念頭に置いて開発されていればもっと楽しいです。 – Rob

2

私はあなたが何をしたいと思いますそれに加えて

Start-Process Powershell.exe -Argumentlist "-file C:\myscript.ps1" 
Start-Process Powershell.exe -Argumentlist "-file C:\myscript2.ps1" 

のようなものです:モジュールの可用性を確保するためのスクリプト内Import-Module $Modulepathを使用してください。

1

Powershell ISEの中に新しいpowershellインスタンス(タブが作成されています。これはpowershell 2と呼ばれています)を作成するにはCtrl + Tを使います。

新しいPowershellタブから、2つ目のpowershellスクリプトを開き、他のpowershellタブで実行されているスクリプトを別の場所で実行できるようになりました。

関連する問題