Powershell重命名基于csv的子文件夹中的文件

时间:2019-06-25 00:56:53

标签: powershell csv

根据该论坛的建议

链接与我的案例相似的内容, 我遵循了下面的链接,它实际上工作得很好(对我的需求有所调整),

Can I rename files in subfolders based on.CSV file using Powershell

但是我想问的是与此有关的一件小事, 就我而言,我在csv中拥有的文件被提到为folder / name.ext,在链接中,它所做的实际上是搜索文件夹并重命名所有文件,而无法读取csv中的文件夹。 如何在PS中添加另一个参数以包括该参数?

Oname,NName
folder1/Name1,NewName1
folder1/Name2,Newname2

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

select

答案 1 :(得分:0)

听起来您也想重命名这些文件夹,但是在您提供的示例csv中,您没有包括希望将旧文件夹重命名为的内容。

我不知道您是如何创建文件夹/文件列表的,但是如果您可以重新创建csv以使其看起来像这样:

Oldname,NewName
Name1,NewName1
Name2,Newname2
Folder1,Newfolder1
Folder1,Newfolder2

然后Niraj Gajjar提供的代码将重命名列表中的所有文件和文件夹:

$data = Import-Csv -Path "YOUR_FILE_NAME.csv" # READING CSV FILE

foreach ($item in $data) # FOR EACH LOOP IN ALL CSV ENTRIES
{
    Rename-Item -Path "${$item.Oldname}" -NewName "${$item.NewName}"
} # END OF FOR EACH LOOP

如果由于某种原因需要将csv的格式保留为“ folder1 / Name,Newname1”,则有不同的解决方案。