【发布时间】:2022-01-26 02:17:03
【问题描述】:
我有一个 ObjectEvent,它看到一个新文件被创建,然后尝试移动该文件。
它可以工作...除了移动文件时,文件仍然打开,因此移动项失败。
所以我想有两种可能的路径......我对任何一个(或两个!)都持开放态度
首先,我的 ObjectEvent 将如何仅在文件关闭后触发?当前对象事件:
Register-ObjectEvent $Watcher -EventName Created -SourceIdentifier FileCreated -Action
其次,MoveItem 是否有可能在失败前坐下来继续尝试 5 秒左右?当前移动项目调用:
Move-Item $path -Destination $destination -Force -Verbose
【问题讨论】:
-
您能否分享代码的其他部分,例如
$Watcher之类的? -
@ZaferBalkan 这是一个独立的问题,特别是关于如何监视文件关闭事件或使 Move-Item 在这种情况下工作。
-
如果文件仍在使用中并且考虑到文件是由外部进程创建的,您可以监视该进程直到它关闭然后移动文件,或者您可以在移动时实施 try catch 块文件以定时间隔重试,您可以看到重试示例here。
标签: powershell