为每个文件创建文件夹并将文件移动到文件夹

时间:2019-09-24 11:02:51

标签: powershell

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

示例:

起始文件夹:

components:
  responses:
    employeesAPI:
      description: This will return information about employees
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/EmployeesInfo'
          # Custom example of response XML
          example: |-
            <Employees>
              <Employee>
                <EmpId>001</EmpId>
                <Name>Steven</Name>
                <Mobile>1-541-754-3010</Mobile>
                <EmailId>steven@yourcomany.com</EmailId>
              </Employee>
              <Employee>
                <EmpId>002</EmpId>
                <Name>Mark</Name>
                <Mobile>1-551-754-3010</Mobile>
                <EmailId>mark@yourcomany.com</EmailId>
              </Employee>
            </Employees>

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

结果文件夹:

\ Dog \ \ Cat \

Dog.jpg
Cat.jpg

我想要实现的是:

Dog.jpg
Cat.jpg

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我会尝试这样的事情:

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

希望这会有所帮助