回答
不知道究竟你想執行什麼,這是我的全部可以提供。您理論上每隔1小時將其作爲計劃任務運行:
foreach ($file in (Get-ChildItem "C:\TargetDirectory" | where {$_.lastwritetime -gt (Get-Date).AddHours(-1)})) {
# Execute-Command -Target $file
}
非常感謝。我會試試這個。 – shallrise 2015-03-19 13:52:55
簡化了一下 – 2015-03-19 14:00:29
您可以使用FileSystemWatcher
class來監視新文件的文件夾。
它可以很容易地used from PowerShell還有:
$FSW = New-Object System.IO.FileSystemWatcher
然後使用Register-ObjectEvent
「監聽」從它引發的事件
非常感謝。 – shallrise 2015-03-19 13:53:35
檢測「新文件」的另一種方法是存檔屬性。無論何時創建或更改文件,該屬性均由Windows設置。
無論何時處理文件,取消設置它的存檔屬性(attrib -a file.ext
)。
好處是,你不依賴任何時間。
要列出「新」(或改變)文件,請使用dir /aa
(dir /a-a
將列出處理的文件)
更多相關信息請參見dir /?
和attrib /?
FileSystemWatcher的是一種實用工具我最近知道肯定會將來使用。最好的部分是它依賴.net事件,所以你不需要構建外部觸發結構。
以下是我如何在24/7生產環境中使用它的示例(完整腳本接收xml,處理它並在3秒內將結果插入到SQL中)。
Function submit-resultFile {
#Actual file processing takes place here
}
Function create-fsw {
Register-ObjectEvent $fsw Created -SourceIdentifier "Spectro FileCreated" -Action {
$name = $Event.SourceEventArgs.Name
$File = $Event.SourceEventArgs.Fullpath
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Verbose "The file '$name' was $changeType at $timeStamp" -fore green
submit-ResultFile -xmlfile $file
}
}
# In the following line, you can change 'IncludeSubdirectories to $true if required.
$fsw = New-Object IO.FileSystemWatcher $watchFolder, $watchFilter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
$xmlFiles = Get-ChildItem -Path $ResultsDirectory -Filter *.xml
foreach ($file in $xmlfiles)
{
submit-ResultFile -xmlfile $File.FullName
}
Create-fsw
# Register a new File System Watcher
幾個要點需要注意的: - 如果在之前的FSW創建他們不會觸發「objectevent」該場所存在的文件,所以在我的劇本,你會看到,我開始運行掃描現有文件。
- 當FSW確實觸發你希望它一次只處理一個文件。由於下一個文件創建事件將生成一個新的「objectevent」。構建FSW以在每個觸發器上處理多個文件最終會導致崩潰。
- 1. 檢查文件夾中的新文件
- 2. 如何檢查複製到特定文件夾的新文件?
- 3. 批處理文件檢查文件夾中的任何內容
- 4. 檢查文件夾中是否存在任何文件(VBScript)
- 5. 檢查文件夾和子文件夾
- 6. 檢查的文件夾,如果它包含任何python3
- 7. 如何檢查父文件夾
- 8. 如何監視新文件或文件夾的文件夾
- 9. 如何檢查子文件夾文本文件是否存在
- 10. 如何使用PHP來檢測文件夾中的新文件?
- 11. 如何檢索python文件夾中的最新文件
- 12. 如何檢測文件夾?
- 13. 查找文件夾外的文件
- 14. 如何檢查python文件夾中的文件已經改變?
- 15. 如何檢查文件夾中的文件名
- 16. PHP - 如何檢查單個文件的子文件夾?
- 17. iPhone SDK - 如何檢查文件夾中的文件名?
- 18. 如何檢查包含.csv文件的文件夾?
- 19. 檢查的文件夾的文件
- 20. DependencyReplicator.xml文件的外觀如何?
- 21. 如何檢查並獲取臨時文件夾中的最新文件(.xlsx)?
- 22. 檢查日誌文件的文件夾
- 23. 如何捆綁項目文件夾外部的文件夾
- 24. 如何檢查更新的文件?
- 25. 如何檢查文件夾或文件是否隱藏=
- 26. 如何檢查目錄是文件還是文件夾?
- 27. 如何檢查文件夾中是否已存在文件
- 28. 如何檢查文件夾中是否存在文件?
- 29. 如何檢查文件夾中是否存在文件C
- 30. 如何檢查文件夾中有多少個文件?
你介意給你的問題增加一點信息嗎?你想不斷掃描一個事件嗎?另外你想對新文件做什麼? – CalebB 2015-03-19 13:12:11
你到目前爲止嘗試過什麼?請閱讀[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)。 – DavidPostill 2015-03-19 13:12:13
不好意思。我需要每隔n次掃描一個文件夾。 如果有新文件>運行該實用程序。 我不明白如何檢查任何新文件。我只知道如何檢查一個具體的名字。 – shallrise 2015-03-19 13:18:06