Powershell-检查新文件

Powershell-检查新文件,powershell,powershell-4.0,Powershell,Powershell 4.0,此代码似乎只有在创建“新”文件时才起作用。它似乎不接受复制到文件夹中的文件,这正是我需要的。我们有一个应用程序,它处理.csv文件并将它们放入一个文件夹中,我希望每天通过一个计划任务来监视该文件夹。在这段代码中我可以尝试更改什么 Param ( [string]$Path = "C:\Users\MG\Desktop\ScanFolder" ) $Fil

此代码似乎只有在创建“新”文件时才起作用。它似乎不接受复制到文件夹中的文件,这正是我需要的。我们有一个应用程序,它处理.csv文件并将它们放入一个文件夹中,我希望每天通过一个计划任务来监视该文件夹。在这段代码中我可以尝试更改什么

Param (
[string]$Path = "C:\Users\MG\Desktop\ScanFolder"
)                                                                        
$File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge (Get-Date).AddHours(-1) }                                                                           
If ( $File ) {                                                          
Write-Output "Error File Found"                                              
}                                                                         
else { Write-Output "Nothing Found" }

测试
.CreationTime
/
.CreationTimeUtc
的值:

  • 对于新创建的文件,它将反映创建时间

  • 对于新复制的文件,它将反映文件复制到文件夹的时间(即使该时间比文件的
    .LastWriteTime
    值更晚)

应用于您的代码:

Param (
  [string] $Path = "C:\Users\MG\Desktop\ScanFolder"
)                                                                        

$file = Get-ChildItem $Path | Where { $_.CreationTime -ge (Get-Date).AddHours(-1) }                                                                           

If ($file) {                                                          
  "Error File Found"                                              
} else { 
  "Nothing Found" 
}

使用可能会有所帮助,因为可以将其配置为监视文件夹(和子文件夹)中的文件更改,包括复制的文件。如何将文件复制到此目录中?我使用了
Copy Item
,并且
LastWriteTime
与原始文件位置保持不变。
LastAccessTime
CreationTime
都已更新到当前时间。