создать папку для каждого файла и переместить файл в папку - PullRequest
0 голосов
/ 24 сентября 2019

Мне нужна команда, которую можно запустить из PowerShell, чтобы создать папку для каждого файла (на основе имени файла) в каталоге, а затем переместить файл во вновь созданные папки.

Пример:

Начальная папка:

Dog.jpg
Cat.jpg

Следующая команда отлично работает при создании папки для каждого имени файла в текущем рабочем каталоге.

Папка с результатами:

\ Dog \ \ Cat \

Dog.jpg
Cat.jpg

Чего я хочу достичь:

\Dog\Dog.jpg
\Cat\Cat.jpg

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 24 сентября 2019

Я бы попробовал что-то вроде этого:

Function Create-FolderAndMoveFile
{
    param(
        [string]$folder
    )

    $files = Get-ChildItem -Path $folder -Filter *.jpg

    foreach($file in $files)
    {
        $dir = [io.path]::GetFileNameWithoutExtension("$file")
        $dest = $("$folder\$dir")
        New-Item $dest -ItemType Directory

        Move-Item -Path $file.Fullname -Destination $dest
    }
}

Затем вы можете вызвать эту функцию как Create-FolderAndMoveFile -folder C:\YourSuperAwesomePath\, и она создаст папку для каждого файла .jpg, который есть ..

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...