我希望能够在短时间内监测文件夹中的变化,当有大量文件被创建或其他变化发生时。以下代码可以工作,但并不能捕捉到所有的变化。
更多问题:如果我在网络驱动器上使用它,那么并不是所有更改都被捕获。 (而这正是此脚本的重点,监视映射驱动器中的文件夹)。
通过仅更改文件夹路径,在您的计算机上测试代码。
使用Powershell ISE 3.0。
$folder = ’C:\Data’
$timeout = 1000
$FileSystemWatcher = New-Object System.IO.FileSystemWatcher $folder
Write-Host ”Press CTRL+C to abort monitoring $folder”
while ($true) {
$result = $FileSystemWatcher.WaitForChanged(‘all’, $timeout)
if ($result.TimedOut -eq $false)
{
Write-Warning (‘File {0} : {1}’ -f $result.ChangeType, $result.name)
}
}
Write-Host ’Monitoring aborted.’
如果我在 C:\Data
上使用它,它可以工作,但是:
我创建一个 .txt 文件,它会两次输出 new text document.txt
。然后我为新的 txt 填写名称,它会输出三次。或者反过来。
请查看下面的输出:
- 在我的文件夹中创建一个
hello.txt
- 创建一个名为
HiThere
的新文件夹 - 将
hello.txt
重命名为someTxt.txt
- 然后删除它们两个
输出:
`Press CTRL+C to abort monitoring C:\Data
WARNING: File Created : New Text Document.txt
WARNING: File Changed : New Text Document.txt
WARNING: File Changed : New Text Document.txt
WARNING: File Changed : hello.txt
WARNING: File Created : New folder
WARNING: File Renamed : HiThere
WARNING: File Renamed : someTxt.txt
WARNING: File Changed : someTxt.txt
WARNING: File Changed : someTxt.txt
WARNING: File Changed : someTxt.txt
WARNING: File Deleted : someTxt.txt
WARNING: File Deleted : HiThere`
更多问题:如果我在网络驱动器上使用它,那么并不是所有更改都被捕获。 (而这正是此脚本的重点,监视映射驱动器中的文件夹)。
通过仅更改文件夹路径,在您的计算机上测试代码。
使用Powershell ISE 3.0。