使用Powershell使用查找文件批量复制和重命名

时间:2017-10-03 16:53:11

标签: powershell

我有一个目录,其中包含由" parent"命名的图像文件,如下所示:

  • aaa.jpg
  • bbb.jpg

我有一个查找文件,将每个父项与其子项匹配。

  

aaa.jpg,111.jpg
  aaa.jpg,222.jpg
  aaa.jpg,333.jpg
  bbb.jpg,444.jpg
  bbb.jpg,555.jpg
  bbb.jpg,666.jpg

我需要复制每个父文件并将其重命名为每个关联子项的名称。也就是说,我需要生成文件:

  • 111.jpg(aaa.jpg的副本)
  • 222.jpg(aaa.jpg的副本)
  • 333.jpg(aaa.jpg的副本)
  • 444.jpg(bbb.jpg的副本)
  • 555.jpg(bbb.jpg的副本)
  • 666.jpg(bbb.jpg的副本)

我尝试使用此处发布的解决方案:Rename Files & Folders Keywords - Using a CSV Look Up File,但是在将父级重命名为第一个子级后,无法进行进一步重命名。有关如何复制,然后重命名以便可以重命名所有子项的任何想法吗?

由于

1 个答案:

答案 0 :(得分:0)

  

有关如何复制,然后重命名以便可以重命名所有子项的任何想法吗?

使用copy-item代替rename-item

假设CSV没有标题:

Import-Csv lookup.csv -Headers Parent, Child | 
    ForEach-Object { 

        Copy-Item -LiteralPath "c:\temp\$($_.Parent)" -Destination "c:\temp\$($_.Child)"

    }