尝试根据修改日期排列文件

时间:2019-09-26 23:10:06

标签: powershell

我试图根据修改日期将PST文件的负载组织到子文件夹中。

例如,我想将日期修改为“ 24/09/2019”的PST文件移动到新创建的名为“ 24/09/2019”的文件夹中-该文件夹的名称基于修改日期。

我设法基于一个文件创建了一个带日期的文件夹,但是将文件移到该文件夹​​中并在多个文件上完成此过程不起作用。

$LastModifiedDate = Get-ChildItem "C:\users\user\Desktop\Test\"
$LastModified = $LastModifiedDate.LastWriteTime.ToString("dd-MM-yyyy")

$LastModifiedDate | ForEach-Object  {
    New-Item -ItemType directory -Path "C:\users\user\desktop\Test\" -Name $LastModified
    Move-Item $LastModifiedDate -Path "C:\users\user\desktop\test\$LastModified"
}

echo $LastModifiedDate
echo $LastModified

1 个答案:

答案 0 :(得分:0)

假设您所有的PST文件都位于您指定的路径中,则可以使用以下方式:

$BasePath = 'C:\users\user\Desktop\Test'
Get-ChildItem -Path $BasePath -Filter *.pst |
    ForEach-Object {
        $Date = Get-Date $_.LastWriteTime -Format 'yyyyMMdd'
        $TargetPath = Join-Path -Path $BasePath -ChildPath $Date
        If (-not (Test-Path -Path $TargetPath)) {
            New-Item -Path $TargetPath -ItemType Directory -Force
        }
        Move-Item -Path $_.FullName -Destination $TargetPath
    }