2012-05-10 18 views
3

私はプロセスを自動化しており、すでにそのためのPowerShellスクリプトを作成しています。今度は、新しいフォルダが特定の場所に追加されるたびにそのスクリプトを呼び出すものを作る必要があります。つまり、新しいビルドが削除されます。 これには何が必要ですか? WCFはあまりにも多いですか?もしそうでなければ、それのためのリードを持っていますか?便利なリンク。 これに対して、もう1つのpowershellスクリプトが優れていますか?新しいフォルダが場所に追加されたときのトリガースクリプト

サブフォルダも確認する必要があります。

ありがとうございました。

答えて

5

Personnaly I'ldが、これはこのお試しください

Unregister-Event -SourceIdentifier FileCreated 
+0

をしかし、このスクリプトは、すべての実行されているはずです新しいビルドがいつ中止されるのか分からないからですこの実装はどれくらい安全で安定していますか? –

+0

同じ作業を行うIO.FileSystemWatcherクラスを使用して、.NET(vb/c#)でアプリケーション(Windowsサービスが多分?)を作成できます。個人的に私は約1年間同じことをする運用サーバー上でpowershellスクリプトを使用します(保守再起動は除外しました;)) –

+0

テスト済みです。働いている:Dクリスチャンとシェイの両方に感謝します。私はこれに非常に新しいです、そして、この助けは私に多くを意味します。 –

0

イベントを見て停止するSystem.IO.FileSystemWatcher

$folder = 'c:\myfoldertowatch' 
$filter = '*.*'        
$fsw = New-Object IO.FileSystemWatcher $folder, $filter 
$fsw.IncludeSubdirectories = $true    
$fsw.NotifyFilter = [IO.NotifyFilters]'DirectoryName' # just notify directory name events 
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { ... do my stuff here } # and only when is created 

使用を使用します。

$fsw = New-Object System.IO.FileSystemWatcher -Property @{ 
    Path = "d:\temp" 
    IncludeSubdirectories = $true #monitor subdirectories within the specified path 
} 

$event = Register-ObjectEvent -InputObject $fsw –EventName Created -SourceIdentifier fsw -Action { 

    #test if the created object is a directory 
    if(Test-Path -Path $EventArgs.FullPath -PathType Container) 
    { 
     Write-Host "New directory created: $($EventArgs.FullPath)" 
     # run your code/script here 
    } 
} 
+1

[IO.NotifyFilters] 'DirectoryName'を使用すると、フォルダがあるかどうかをテストする必要はありません。 –

+0

@Christian +1クール、注目! –

+0

ありがとうシェイ! –

関連する問題