Сценарий PowerShell для мониторинга файлов и запуска сценария
Я ищу сценарий, который может отслеживать папку, в которой много файлов.DAT, и как только новый файл.DAT добавляется, сценарий может быть запущен, чтобы изменить атрибут файла этих файлов в формате только для чтения.
Я создал скрипт для изменения формата этих файлов, но мне нужна ваша помощь, ребята, помогите мне создать скрипт для мониторинга этой папки, как только будет создан новый файл.
$Path = Get-Childitem -Path D:\ReadOnly\*
foreach ($Item in $Path) {
Set-ItemProperty $Path -Name IsReadOnly -Value $True
}
2 ответа
Взгляните на FileSystemWatcher и Register-ObjectEvent.
Тем не менее, вы можете просто запустить цикл с небольшой задержкой (которая, вероятно, вам понадобится независимо, потому что в противном случае ваш скрипт просто завершится немедленно), и перепроверить. Или регулярно запускайте скрипт через планировщик задач. Или напишите небольшую программу на C#, чтобы сделать то же самое (что будет легче написать, потому что события объектов.NET неудобны в PowerShell).
Планировщик задач, вероятно, чище, но если вы хотите, это следует делать с бесконечным оператором while (измените время ожидания по желанию):
while (1) {$Path = Get-Childitem -Path D:\ReadOnly\*
foreach ($Item in $Path) {
Set-ItemProperty $Path -Name IsReadOnly -Value $True ; start-sleep -Seconds 5
}}