使用 PowerShell 监视文件夹

使用 PowerShell 监视文件夹

该脚本将监视一个文件夹,如果创建了新图像,则将其移动到图像文件夹。非常简单。

但我让它部分工作了。问题是只有旧图像被移动了;新创建的图像没有移动。

我从一个空文件夹开始,将一张图片 (1.jpg) 下载到该文件夹​​,没有任何图片移动到 Z: 驱动器。然后我将另一张图片 (2.jpg) 下载到该文件夹​​,只有 1.jpg 移动到 Z: 驱动器;2.jpg 保持原位。似乎新创建的图片从未移动过。

$folder = "C:\\Doc\\Files"
$dest = "C:\\Doc\\Files\\images"
$filter = "*.jpg"

$fsw = new-object System.IO.FileSystemWatcher $folder, $filter -Property @{
    IncludeSubDirectories=$false
    NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite'
}

$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {

    Start-Sleep -s 10
    Move-Item -Path C:\Doc\Files\*.jpg C:\Doc\Files\images
}

更新:

我在 move-item 前添加“Start-Sleep -s 10”后,现在可以正常工作了。但是有更好的解决方案吗?

相关内容