2010-03-11 38 views
7

kullanarak her x saniyede bir çalıştırın Bir toplu iş dosyasını her x saniyede çalıştırmak için bir Windows PowerShell komut dosyası kullanmak istiyorum. Yani tekrar tekrar çalıştırılan aynı toplu iş dosyası.Bir toplu iş dosyasını PowerShell

Bazılarını aradım ama aradığım şeyi bulamıyorum. Windows   XP makinede çalıştırmak istediğim bir şey için. Benzer bir şey için Windows Zamanlayıcı'yı daha önce birçok kez kullandım, ama bir sebepten dolayı Windows Zamanlayıcı sadece bir kez çalışıyor ... Sonra artık yok. Ayrıca, toplu iş dosyasının kendisini aramak istemiyorum çünkü çok kez çalıştırdıktan sonra hata yapacaktır.

cevap

13

Sadece bir süre döngü eg toplu dosyasına çağrıyı beklemeye: Hızlı yardım için

harika
$period = [timespan]::FromSeconds(45) 
$lastRunTime = [DateTime]::MinValue 
while (1) 
{ 
    # If the next period isn't here yet, sleep so we don't consume CPU 
    while ((Get-Date) - $lastRunTime -lt $period) { 
     Start-Sleep -Milliseconds 500 
    } 
    $lastRunTime = Get-Date 
    # Call your batch file here 
} 
+0

... teşekkürler .. çalışır harika – jvcoach23

+5

Keith, neden sadece 'iken (1) {uyku -sec 45; . \ script.ps1} '? – stej

+3

Amacın kelimenin tam anlamıyla x 'saniyeliğine mi çalışacağına bağlıdır (burada toplu iş dosyasının yürütülmesi için x x saniyeden daha az zaman alır) VEYA eğer çalıştırılacaksa 20 saniye bir kez, uyku 25, bir saniye sonra zaman ve 30 saniye ve sonra 25 uyku. Sonra zaman aralığı değişir (45 - 55 saniye). Bu önemli değilse, her şeyi basit bir uykuya basitleştirin. –

İlgili konular