我希望能夠在很短的時間內監控文件夾中的更改,這時會創建大量文件並進行其他更改。Powershell - 監控文件夾內容
下面的代碼正在工作,但沒有收到所有更改。
$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和它說的2倍new text document.txt
。 然後我填寫新的txt的名稱,並輸出它3次。或者相反。
請參閱的
- 輸出生成我的文件夾
- 名爲
HiThere
和 - 然後重命名創建一個新的文件夾中
hello.txt
下面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`
更多問題:如果我用這個newtwork驅動器上,然後不是所有的變化被逮住。 (這將是這個腳本的目的,從映射驅動器監視文件夾)。
只需更改文件夾路徑即可測試機器上的代碼。
使用PowerShell ISE 3.0
注意,FileSystemWatcher的是非常不可靠,通常建議使用監視文件系統不同的方法。 –
@GeraldSchneider嗨,謝謝你的回放。我看到,不知道,但也許有人有一個想法來改進代碼。我主要是玩弄PowerShell,並試圖找到新的酷酷的方式來使用它。在這個小小的項目上大肆渲染,並且認爲它會發揮作用。如果沒有解決方案,我會放過它,但還沒有:) – CM2K