Powershell - 根据文件名将文件复制到不同的目标文件夹

时间:2011-12-21 15:10:46

标签: powershell copy

亲爱的Powershell大师,

我在名为C:\ Downloads \ Signs的文件夹中有几千个文件。 文件以其尺寸命名,如13X20 abcdjd.psf,8X20 jdscnjfc.psf,14X24 dje.psf等。 我想要做的是将这些文件移动到在C:\ Downloads \ Signs中创建的目标文件夹,文件夹名称是文件名的维度。文件夹名称的示例将是13X20,8X20,14X24等,并且它取决于具有其尺寸的唯一文件名。 因此,不是手动移动它们来查看C:\ Downloads \ Signs文件夹中有多少文件,然后单独移动它们,我们如何在Powershell中执行此操作?

谢谢, 桑德斯。

1 个答案:

答案 0 :(得分:3)

此脚本将从C:\ Downloads \ Signs文件夹的根目录中获取所有psf,并将文件移动到目标文件夹(如果文件夹不存在,则会创建文件夹):

Get-ChildItem C:\Downloads\Signs -Filter *.psf | Where-Object {!$_.PSIsContainer} | Foreach-Object{

    $dest = Join-Path $_.DirectoryName $_.BaseName.Split()[0]

    if(!(Test-Path -Path $dest -PathType Container))
    {
        $null = md $dest
    }

    $_ | Move-Item -Destination $dest -Force
}