2016-04-02 31 views
1

bu yüzden her 60 saniyede yeni Görevleri kontrol eden iki adet .ps1 komut dosyası var ve bunları aynı anda çalıştırmak istiyorum. Onları her gün kullanıyorum ve onları başlatmak biraz can sıkıcı oluyor. İdeal olarak, bu iki koşuyu benim için çalıştırabileceğim bir komut dosyası yazmak istiyorum.Birden çok Powershell Komut Dosyası aynı anda nasıl çalıştırılır?

Sorun şu ki, bir noktada durmadıkları için, onları birbiri ardına başlatamam ve yeni bir PS ISE örneğini açmak için bir komut bulamıyorum. Bununla birlikte, bir örnek, aynı anda hem komut dosyalarını çalıştıramaz. Ctrl + T Seçeneği mükemmel olurdu, ama eşdeğer bir komut bulamıyorum.

Bunun nasıl çözüleceği konusunda bir fikri var mı? Teşekkürler!

+0

İki komut dosyasını ISE'de çalıştırmanız mı gerekiyor? Varsa: neden? – Rob

+0

evet, ikisi de yerel bir modül yükledikleri için yapıyorum ... –

+0

ISE olmadan modülleri yükleyebilirsiniz. [link] (https://msdn.microsoft.com/en-us/library/dd878284%28v=vs.85%29.aspx) – Rob

cevap

2

Eğer Powershell 3.0+ kullanıyorsanız workflows kullanabilirsiniz. İşlevlere benzerler, ancak komutları paralel çalıştırabilme avantajına sahipler.

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

bir iş akışı bir fonksiyonu gibi davranır unutmayın

:

böylece iş akışı böyle bir şey olurdu. Bu yüzden önce önbelleğe yüklenmeli ve ardından RunScripts komutunu çalıştırarak çağrılmalıdır.

fazla bilgi: modüllerinin kullanılabilirliği sağlamak için komut içine Kullanım Import-Module $Modulepath: https://blogs.technet.microsoft.com/heyscriptingguy/2013/01/09/powershell-workflows-nesting/

+0

Bununla birlikte, tüm cmdlet'lerin iş akışlarında desteklenmediği ve nedenini çözmediği belirtilmelidir. Bir iş akışında beklendiği gibi çalışmayan bir betik * içinde oldukça acı olabilir. İş akışları yine de harika, ancak içerideki kod, "iş akışı içinde çalıştırılması" düşüncesiyle geliştirildiğinde daha eğlenceli. – Rob

2

Bence ne istediğini Buna ek olarak

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

gibi bir şeydir.

1

Powershell ISE içinde yeni bir powershell örneği oluşturmak için (powershell 2 adlı bir sekme oluşturulduysa) CTRL + T kullanın.

Yeni Powershell sekmesinden artık ikinci bir powershell komut dosyasını açıp diğer powershell sekmelerinde çalışan komut dosyasını bir kenara aktarabilirsiniz.

İlgili konular