回答
不知道究竟你想执行什么,这是我的全部可以提供。您理论上每隔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. 如何监视新文件或文件夹的文件夹
- 5. 如何检索python文件夹中的最新文件
- 6. 如何使用PHP来检测文件夹中的新文件?
- 7. 如何检查包含.csv文件的文件夹?
- 8. iPhone SDK - 如何检查文件夹中的文件名?
- 9. PHP - 如何检查单个文件的子文件夹?
- 10. 检查的文件夹的文件
- 11. 如何检查并获取临时文件夹中的最新文件(.xlsx)?
- 12. DependencyReplicator.xml文件的外观如何?
- 13. 如何检查更新的文件?
- 14. 如何检查文件夹中是否已存在文件
- 15. 如何检查文件夹或文件是否隐藏=
- 16. 如何检查路径是否指向文件夹或文件?
- 17. 如何检查目录是文件还是文件夹?
- 18. 如何检查文件夹中有多少个文件?
- 19. 如何检查此/任何文件夹是否包含任何mp4文件或不在android中使用cordova?
- 20. 检查文件夹的URL
- 21. 如何检索文件夹层次结构中最后更新的文件夹?
- 22. 如何检查Amazon S3存储桶内文件夹的子文件夹大小
- 23. 如何更新sharepoint shareddocument文件夹中的文件夹属性
- 24. 如何将旧文件夹复制到新文件夹并重命名新文件夹中的文件
- 25. 如何检测文件何时放入我的文件夹中
- 26. 如何将任何文件夹更改投影到新文件夹并保留原始文件?
- 27. 如何检查文件夹名称是在另一个文件夹内
- 28. 如何添加许多空文件夹在git /检查文件夹骨架?
- 29. 检查文件夹路径
- 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