gpt4 book ai didi

.net - Powershell fileSystemWatcher 事件

转载 作者:行者123 更新时间:2023-12-02 23:33:03 26 4
gpt4 key购买 nike

我想查看文件是否更改:

$path  = "C:\2"
$i=0
$w=new-object io.filesystemwatcher
$w.path=$path
$w.filter="test.txt"
register-objectevent $w Changed -action {
write-host $event.sourceeventargs.fullpath
$i++
write-host $i
}

cls
sleep 2
777 >c:\2\test.txt # Event of the file changing
输出:
C:\2\test.txt
1
C:\2\test.txt
2
为什么我有两次一个事件?
更新。
修复尝试:
$path  = "C:\2"
$i=0
$w=new-object io.filesystemwatcher
$w.path=$path
$w.filter="test.txt"
register-objectevent $w Changed -action {
$i++
if($i%2 -eq 0){
write-host "Here"
write-host $event.sourceeventargs.fullpath
}
}

cls
sleep 2
777 >c:\2\test.txt
输出:
这里
C:\2\test.txt
这是修复它的最佳方法吗?

最佳答案

777 > c:\2\test.txt此命令实际上将内容更改了 2 次:

  • 它会删除内容
  • 它将 777 添加到文件
  • 的内容中
    777 >> c:\2\test.txt仅通过将 777 附加到文件来更改内容一次
    您可以看到其他时髦的行为,例如某些应用程序可能会批量写入文件而不是 1 次,因此您可以获得更多触发器。
    这是一个非常强大的解决方案: https://stackoverflow.com/a/3042963/10213635您还可以找到其他一些解决方案

    关于.net - Powershell fileSystemWatcher 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62561887/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com