2012-02-16 13 views
2

私はパラレルモードでpowershellを実行しようとしていました。私は、フォルダに変更があるたびにトリガーするイベントを作成することをお勧めしました。Register-Objecteventを使用してpowershellスクリプトを呼び出す方法は?

例:特定のフォルダに "test1"というフォルダ名が作成されている場合は、powershellスクリプトtest1.ps1を起動する必要があります。

私はこれをRegister-Objeventで例にしようとしていましたが、私は良い手がかりを得ていません。

このようなものを実装している場合は、私を案内してもらえますか?


更新日:

を私は "D:\ ParallelEvent \ tempに" にtest1.ps1という名前のファイルを作成すると、フォルダを、それがtest1.ps1のPowerShellのファイルを実行する必要があります。以下は、私のtest1.ps1がライン

[system.windows.forms.messagebox]::show("Hello, Test1!") 

を以下ました。しかし、まだ、それはそれはそうtest1.ps1を実行していないこと

$ScriptLoc="D:\My_Scripts" 
    $watcher = New-Object System.IO.FileSystemWatcher -Property @{Path = 'D:\ParallelEvent\temp';Filter = '*.txt';NotifyFilter = [System.IO.NotifyFilters]'FileName,LastWrite'} 
    $CreatedAction = 
    { 
    $FilenamewithoutExtn=$(($event.sourceEventArgs.Name).Split('.')[0]) 
    Start-Job $ScriptLoc\$FilenamewithoutExtn.ps1 
    Get-Job -State Running | Wait-Job 
    } 

Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier FileCreated -Action $CreatedAction 

ためのコードです。私はメッセージボックスを手に入れませんでした。私は何かを逃していますか?

答えて

0

powershellジョブがバックグラウンドプロセスとして実行され、uiが表示されないため、メッセージボックスが表示されません。

ファイルのリダイレクトに

"test " > C:\AnywhereYouWantToRedirectData\testagain.txt 

をtest1.ps1を変更する場合は、test1.ps1が実行され、リダイレクトされたファイルが作成されることを(testagain.txt)を見ることができます。

関連する問題