У меня есть скрипт (ниже), который просматривает папку, в которой находится скрипт .ps1. При создании файла он запускает файл .bat для выполнения работы.
Первоначально он запускался и закрывалсянемедленно.Поэтому я добавил '' 'Start-Sleep -s 50' ''
. Он работает, но запускает .bat только при закрытии окна PowerShell.
(поскольку я не знаю,сколько времени пройдет, пока файл не появится в папке, это бесполезно).
В идеале я мог бы сделать с запуском файла .bat, как только будет создан новый файл, который, в свою очередь, затемзакрывает окно PowerShell
$configFilePath = $PSScriptRoot
$filter = '*.*'
$fsw = New-Object IO.FileSystemWatcher $configFilePath, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath c:\temp\log\Filelog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"
Set-Location "$PSScriptRoot"
Start-Process "$PSScriptRoot\PS_Run.bat"
}
Start-Sleep -s 50