FileSystemWatcher для выполнения функций .NET
Я создаю быстрое временное исправление, так что извините, если это грязно, но ...
Задача
Я хотел бы использовать командлет Powershells Register-Event, чтобы дождаться, когда файл будет помещен в папку, а затем вызвать функцию, которая анализирует файл и выводит его в Excel. Я неМне нужна помощь с аспектом кодирования, просто концепция. Для меня все еще немного загадочно то, где проходит это событие и с какими ресурсами оно должно работать.
Вещи, которые яve пробовал
Один файл .ps1 с зарегистрированными событиями внизу, вызывающий функцию вверху, вызываемую пакетным файлом.
Поведение: Остановки на этой линии:
$sr = new-object System.IO.StreamReader($copyPath)
Это мой первый вызов .NET, поэтому я предположил, что это проблема с .NET.
Два файла .ps1, FileWatcher и Parser, оба прекрасно работают при отдельном запуске, вызываемом пакетным файлом.
Поведение: FileWatcher Outputs "Эта линия " но не может вывести какие-либо строки в Parser и никогда не попадает в эту строку.
Register-ObjectEvent $fsw Changed -SourceIdentifier FileChange -Action {
Write-Host "This Line"
.\src\Parser.ps1
Write-host "That Line"
}
Я даже впал в отчаяние, чтобы перейти к двум файлам PS1 и двум пакетным файлам. Давайте просто скажем, что нет работа.
Общая команда командного файла, которую я использую:
powershell.exe -noexit C:\scripts\src\FileWatcher.ps1
Вопросы
Почему некоторые команды работают нормально при вызове из зарегистрированного события, а другие команды, такие как .NET, не работают?
Является ли то, что я пытаюсь достичь, возможно?
У вас есть лучший способ достичь моей цели? (Только сценарии, помните, что это исправление).