Сценарий 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
}}
Другие вопросы по тегам