Powershell - 根据今天的日期将 txt 文件从子文件夹移动到根文件夹

问题描述 投票:0回答:1

我有一个初学者问题。 我有一个包含很多子文件夹的文件夹。

参见上面的示例,我只想从仅包含今天日期的文件夹中复制 .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
powershell file move
1个回答
0
投票

好吧,由于表达式

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 文件,前提是您只想移动该文件。

© www.soinside.com 2019 - 2024. All rights reserved.