根据.csv文件的内容移动.csv文件



我想搜索.csv文件的文件夹,并选择那些包含比某个日期早的日期值的文件。一旦我有了文件,我只想把它们移到另一个文件夹位置。我已经尝试过了,但得到了错误"移动项:输入对象不能绑定到命令的任何参数,因为该命令不接受管道输入,或者">

$Date = (Get-Date).AddDays(-60).Date
$CsvFiles = Get-ChildItem -Path "D:IMPORT" -Filter *.csv
foreach ($csv in $CsvFiles){
$group = Import-Csv -Path $CsvFiles.FullName | 
Where-Object {$_."Received Date" -as [datetime] -lt $Date} | 
Sort-Object 'Order ID' -Unique | 
forEach-Object {
$_.Group | Move-Item -Path $csv.FullName -Destination D:EXPORT$($csv.Name) -Force}}

代码正在处理文件的移动。我认为MoveItem不需要-Path,因为它应该已经存在于管道中。但是,不提供路径会导致path Null错误。

非常感谢您的帮助。

除非我不明白你想做什么,否则应该可以
如果脚本正在执行您期望的操作,请移除Move-Item上的-WhatIf开关:

$Date = (Get-Date).AddDays(-60).Date
$CsvFiles = Get-ChildItem -Path "D:IMPORT" -Filter *.csv
$toMove = foreach($csv in $CsvFiles)
{
$shouldMove = Import-Csv -Path $csv.FullName |
Where-Object {
$_.'Received Date' -as [datetime] -lt $Date
} | Select-Object -First 1
if($shouldMove)
{
$csv.FullName
}
}
Move-Item -Path $toMove -Destination D:EXPORT -Force -WhatIf

相关内容

  • 没有找到相关文章

最新更新