Powershell Get-ChildItem 似乎有时会跳过文件

问题描述

我编写了一个 powershell 脚本,使用 Add-PnPFile 将在本地文件夹中创建的文件上传到 SharePoint。

我每 20 秒循环一次脚本以检查文件夹中是否有新文件,然后在文件不在 SharePoint 上时上传。我使用 Where-object 只选择最后 5 分钟,以便循环中没有太多文件。 (由于流程是ERP->本地文件夹->SharePoint,用户正在等待,因此需要快速上传

这在 95% 的情况下都有效,但有时会跳过现有的文件

$Localfolder = "D:\DATA"
$A_Files = Get-ChildItem -Path $Localfolder -Include @("*.pdf","*.csv") | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-5)}

如果我停止脚本并在同一个 Powershell 会话中运行,它不会显示文件。 如果我打开另一个 powershell 会话并运行该命令,它会显示文件

有人知道是否有缓存或我遗漏了什么吗?

PS C:\Users\rob_admin> $PsversionTable

名称


PS 版本 5.1.14409.1018
PS版桌面
PSCompatibLeversions {1.0,2.0,3.0,4.0...}
构建版本 10.0.14409.1018
CLR 版本 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
序列化版本 1.1.0.1

解决方法

我开始使用一种不同的方法,它在 IInspectable 评论后有 100% 的成功率: $watcher = 新对象 System.IO.FileSystemWatcher

所以触发器现在是: Register-ObjectEvent $watcher 'Created' -Action $action

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...