FileWatcher用のPowerShellスクリプトを作成しました。私はC#でそれを実行する必要があります。私はいろいろ試しましたが、うまくいかなかったのです。私はスクリプトを実行するバッチファイルも作成しました。まだそれは動作していない、単にコンソールが開いたり閉じたりする。コマンドプロンプトで手動で各ステップを実行すると、スクリプトを実行することができました。以下はCMDモードで実行するバッチファイルからPowerShellスクリプトを実行できません
私のPowerShellスクリプトである:ここで
$folder = 'D:\'
$filter = '*.csv'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $false;
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -Fore red
Out-File -FilePath D:\outp.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"
}
は、PowerShellのからスクリプトを呼び出すために、バッチファイル
D:
powershell.exe
powershell Set-ExecutionPolicy RemoteSigned
./FileWatcherScript
PowerShellスクリプトをC#から実行する必要がありますが、質問にC#コードはありません。 –
Ansgar Wiechers、ご返信ありがとうございます。 私のバッチファイルが機能するならば、私は自分でC#を試すことができます。 –
バッチファイルが意味をなさない。最初の 'powershell.exe'は返さずにPowerShellを起動するので、手動で終了するまで他のコマンドは実行されません。それでも2番目のコマンドは実行ポリシーを設定して戻りますが、最後のステートメントは現在の作業ディレクトリからの最初のファイル拡張子 '%PATHEXT%'を持つファイル 'FileWatcherScript'を実行しようとします。 '.ps1'はこれらの拡張子の中にはないので、単にコマンドが見つからないというエラーが発生します。おそらく実行したいのは 'powershell.exe -ExecutionPolicy Bypass -File。\ script.ps1'です。 –