1
我想运行一个脚本,该脚本在使用一堆文件(例如一堆.pdf)的窗口上执行特定程序。问题是我正在将这些文件从另一个位置接收到共享文件夹。所以我需要检查这个共享文件夹,并且只有当所有文件都完成了我不能控制的另一个驱动器的拷贝时才执行该程序。检查一个文件夹是否被拷贝过
无论如何要做到这一点?我所有的搜索都让我使用PowerShell和这样的脚本,除了我的操作记录文件外,我需要执行程序,但我不知道如何做到这一点,最后复制的文件/文件夹已经完成。
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Users\User\Desktop\monitor_this"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Add-content "C:\Users\User\Desktop\log.txt" -value $logline
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
Register-ObjectEvent $watcher "Changed" -Action $action
Register-ObjectEvent $watcher "Deleted" -Action $action
Register-ObjectEvent $watcher "Renamed" -Action $action
while ($true) {sleep 5}
使用滑动计时器技术:将$ action代码内部的计时器重置为新的时间(例如5秒),以便在5秒内没有任何内容被修改时实际执行。 – wOxxOm
所以我在添加内容之前添加了$ timer.Interval = 20000。但是,一旦定时器用完,我怎么才能得到添加内容或其他任何部分? – Soorman
添加内容应该在计时器的“动作”内 – wOxxOm