首页 > 解决方案 > 为每个文件创建文件夹并将文件移动到文件夹中

问题描述

我需要一个可以从 powershell 运行的命令来为目录中的每个文件(基于文件名)创建一个文件夹,然后将文件移动到新创建的文件夹中。

例子 :

起始文件夹:

Dog.jpg
Cat.jpg

以下命令非常适合为当前工作目录中的每个文件名创建一个文件夹。

结果文件夹:

\狗猫\

Dog.jpg
Cat.jpg

我想要实现的是:

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

有人可以帮我弄这个吗?

标签: powershell

解决方案


我会尝试这样的事情:

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 文件创建一个文件夹。

希望这可以帮助


推荐阅读