Powershell - копирование файлов в разные папки назначения на основе имен файлов - PullRequest
2 голосов
/ 21 декабря 2011

Уважаемые Гуру Пауэршелл,

У меня есть несколько тысяч файлов в папке с именем C: \ Downloads \ Signs. Файлы имеют имена с размерами, такими как 13X20 abcdjd.psf, 8X20 jdscnjfc.psf, 14X24 dje.psf и т. Д. Я хочу переместить эти файлы в целевые папки, созданные в C: \ Downloads \ Signs, а имена папок - это измерения имен файлов. Например, имена папок будут 13X20, 8X20, 14X24 и т. Д., И это зависит от количества уникальных имен файлов с их размерами. Итак, вместо того, чтобы перемещать их вручную, просматривая количество файлов в папке C: \ Downloads \ Signs и затем перемещая их по отдельности, как мы можем сделать это в Powershell?

Спасибо, Сандерс.

1 Ответ

3 голосов
/ 21 декабря 2011

Этот сценарий подберет все psf из корня папки C: \ Downloads \ Signs и переместит файлы в целевые папки (папки будут созданы, если они не существуют):

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...