我有這個腳本是工作的罰款掃描特定的每個文件夾的PowerShell中的子文件夾
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\folder_to_scan\"
$watcher.Filter = "*.nrrd"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$action =
{
$path = $Event.SourceEventArgs.FullPath
Write-Host "The file '$path' was $changeType at '$(Get-Date)'" -fore green
}
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 3600}
但在我C:\folder_to_scan\
我有很多子目錄像00123
,00245
,56002
...而裏面每個人我有\THE_DIRECTORY_TO_SCAN
所以,我想這個$watcher.Path = "C:\folder_to_scan\*\THE_DIRECTORY_TO_SCAN\"
和$watcher.Path = "C:\folder_to_scan\[0-9]*\THE_DIRECTORY_TO_SCAN\"
但是,這是行不通的。在這種情況下可以使用通配符嗎?
如果不是,如何使用多路徑與FileSystemWatcher
? 因爲我想通了,我們可以利用這個
Resolve-Path "C:\folder_to_scan\*\THE_DIRECTORY_TO_SCAN\" | Select -ExpandProperty Path
對不起,這是怎麼工作的罰款? while($ true){sleep 3600} 這將使您的腳本等待永恆,因爲$ true將始終爲真。你想要做的是一個do {} while() 所以你想要做的是掃描每個有「THE_DIRECTORY_TO_SCAN」這樣的名字的子目錄嗎? 我會做的是使用Get-childitem並搜索文件夾名稱中具有該名稱的所有路徑。當您獲得這些名稱時,您將開始專注於監控它們。 – Snak3d0c
'睡眠3600'只能每小時監測一次。我縮短了這段代碼,因爲它更復雜,我在'action'中做了很多事情。無論如何,如何給出'FileSystemWatcher'的路徑列表? – Raccoon