我有一个初学者问题。 我有一个包含很多子文件夹的文件夹。
参见上面的示例,我只想从仅包含今天日期的文件夹中复制 .txt 文件 - 并将它们直接放入此目录中。
所以在这个例子中,只想查看今天的最后修改日期的文件夹。 我还想检查该文件夹中的文件是否尚未存在于文件夹 - H:\FOLDERS 中 - 然后移动命令应该中止。
这是我到目前为止所拥有的,但没有文件被移动。
$SrcPath = "H:\FOLDERS\"
$DestPath = "H:\FOLDERS"
$Today = Get-Date "$((Get-date).ToString("dd/MM/yyyy"))"
$ItemsToCopy = Get-ChildItem -Recurse -Path $SrcPath | Where-Object {$_.LastWriteTime -gt $Today}
$ItemsToCopy | Copy-item -Path $DestPath
好吧,由于表达式
Get-Date "$((Get-date).ToString("dd/MM/yyyy"))"
无效,您可以将日期调用减少到仅 (Get-Date).Date
,它会在午夜返回 DateTime
对象。
修复此问题应该允许您直接通过管道传输到
Copy-Item
,而不必先保存到变量:
$SrcPath = "H:\FOLDERS\"
$DestPath = "H:\FOLDERS"
$Today = (Get-Date).Date
Get-ChildItem -Filter '*.txt' -Recurse -Path $SrcPath |
Where-Object {$_.LastWriteTime -ge $Today} |
Copy-item -Path $DestPath
您还可以在运行时过滤 .txt 文件,前提是您只想移动该文件。