Powershell之监控文件系统变化-创新互联

#region Import Assemblies
#----------------------------------------------
[void][Reflection.Assembly]::Load("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
[void][Reflection.Assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
#endregion Import Assemblies

#设置监控路径
$script:folder="C:\"

$form=New-Object System.Windows.Forms.Form
$form.FormBorderStyle="Fixed3D"
$form.StartPosition = 'CenterScreen'
$form.ClientSize="200,80"
$form.Text="Monitor"

$buttonStart=New-Object System.Windows.Forms.Button
$buttonStart.Text="Start Watch"
$buttonStart.Location="45,10"
$buttonStart.add_click({start-watch})
$buttonStart.Size="100,20"

$buttonStop=New-Object System.Windows.Forms.Button
$buttonStop.Text="Stop Watch"
$buttonStop.Location="45,40"
$buttonStop.add_click({stop-watch})
$buttonStop.Size="100,20"

$form.Controls.AddRange(@($buttonStart,$buttonStop))

$script:watcher = New-Object System.IO.FileSystemWatcher $folder

#开始执行监控
function start-watch{
    $NotifyFilters=New-Object System.IO.NotifyFilters
    #$watcher.NotifyFilter="Size,LastWrite,LastAccess,CreationTime,Security"
    $watcher.Filter = "*.*"
    $watcher.InternalBufferSize = 65536
    #是否包含子目录
    $watcher.IncludeSubDirectories = $True
    #是否触发事件,必须开启
    $watcher.EnableRaisingEvents = $True
    $watcher.SynchronizingObject = $form
    $form.Text="Monitoring"
    $buttonStart.Enabled=$false

    #创建时触发
    $watcher.add_Created({created})
    $watcher.add_Changed({changed})
    $watcher.add_Deleted({deleted})
    $watcher.add_Renamed({renamed})

}

function msg($message){
    [Windows.Forms.MessageBox]::Show($message)
}

# $_.changetype 获取操作类型
# $_.fullpath   获取文件绝对路径

function created(){
    #创建文件
    #自己编写处理逻辑
    msg($_.fullpath)
}

function changed(){
    #文件信息变更
    #自己编写处理逻辑
    msg($_.fullpath)
}

function deleted(){
    #删除文件
    #自己编写处理逻辑
    msg($_.fullpath)
}

function renamed(){
    #名称变更
    #自己编写处理逻辑
    msg($_.fullpath)
}


#停止监控
function stop-watch{
    $watcher.EnableRaisingEvents = $false
    $form.Text="Monitor"
    $buttonStart.Enabled=$true
}


$form.ShowDialog()

10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有海棠免费网站建设让你可以放心的选择与我们合作。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:Powershell之监控文件系统变化-创新互联
文章源于:http://scyanting.com/article/dgdedh.html