用于监控文件的PowerShell脚本&运行脚本

时间:2014-10-21 12:46:55

标签: file powershell directory monitoring readonly-attribute

我正在寻找一个可以监视包含大量.DAT文件的文件夹的脚本,并且只要添加新的.DAT文件,脚本就可以运行以将这些文件的文件属性更改为只读格式。

我已经让脚本更改了这些文件的文件格式,但是我需要你帮助我创建脚本,以便在创建新文件后立即监视此文件夹。

$Path = Get-Childitem -Path D:\ReadOnly\* 
foreach ($Item in $Path) {
  Set-ItemProperty $Path -Name IsReadOnly -Value $True
}

2 个答案:

答案 0 :(得分:2)

查看FileSystemWatcherRegister-ObjectEvent

但是,您可以稍微延迟运行一个循环(无论如何您可能都需要它,因为否则您的脚本将立即退出)并重新检查。或者通过任务计划程序定期运行脚本。或者编写一个小的C#程序来做同样的事情(这样会更容易编写,因为在PowerShell中.NET对象事件很尴尬)。

答案 1 :(得分:0)

任务调度程序可能更干净,但如果你愿意,这应该使用永不结束的while语句(根据需要修改休眠时间):

while (1) {$Path = Get-Childitem -Path D:\ReadOnly\* 
foreach ($Item in $Path) {
  Set-ItemProperty $Path -Name IsReadOnly -Value $True ; start-sleep -Seconds 5
}}