Power Shell에서 FileSystemWatcher에 대한 작업으로 시작 프로세스를 사용하는 방법

Power Shell에서 FileSystemWatcher에 대한 작업으로 시작 프로세스를 사용하는 방법

System.IO.FileSystemWatcher를 사용하여 생성된 파일의 폴더와 하위 디렉터리를 볼 수 있지만 프로세스 시작을 사용하여 배치 파일을 실행하려고 하면 한 번 실행되지만 다시는 트리거되지 않습니다. 답변을 수정했습니다.여기.

여기 내 Powershell 스크립트가 있습니다

$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\lectures"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true  

$action = { $path = $Event.SourceEventArgs.FullPath
            Write-Host "Event Fired"
            $ext = [io.path]::GetExtension($path)
            if($ext -eq ".wma"){
                $file = [io.path]::GetFileNameWithoutExtension($path)
                $folder = Split-Path(Split-Path $path -Parent) -Leaf
                $date = Get-Date -UFormat "%Y-%m-%d"
                $newName = $folder + "_" + $date + $ext
                $newPath = Rename-Item -path $path -newname $newName -PassThru
                Start-Process "C:\lectures\deploy.bat" $newPath
            }
          }

Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {
    Write-Host "Still Alive"
    sleep 5
}

내가 실행중인 배치 파일은 다음과 같습니다.

@echo off
CD %~dp1
ffmpeg -i %~nx1 %~n1.mp3 -loglevel panic
del %1
REM Winscp.com /ini=null /script=uploadScript.txt /parameter %~n1.mp3

Powershell 스크립트는 프로세스를 실행한 후에도 계속 실행되며 프로세스가 제대로 종료되는 것 같습니다. 이벤트를 계속 처리하려면 어떻게 해야 합니까?

관련 정보