使用[powershell]重命名当前名称与csv列表部分匹配的文件夹

dz6r00yl  于 2023-02-23  发布在  Shell
关注(0)|答案(1)|浏览(192)

提前感谢,我是完全新的PowerShell,但我知道它可以重命名文件等,所以我希望在您的帮助下,它可以做到最小的大惊小怪...我已经被要求重命名约200个文件夹添加在第二次引用的文件夹名称。
当前文件夹名称示例为“11111_a1”,我想将其重命名为“11111_a1 12345678”。我创建了一个包含两列的CSV文件,第一列与现有文件夹名称“20519”部分匹配,第二列包含需要添加的其他参考“30534400”
该列表位于临时文件夹“C:\temp\FolderNameList.csv”中
目标文件夹位于“O:\folder1\folder 2\0 - Sites”
我还没有尝试任何东西,但我的搜索没有成功。

lmyy7pcs

lmyy7pcs1#

$BaseFolder = 'O:\folder\whatever'

# An array, one item for each data row in your CSV
$Rows = Import-Csv 'C:\temp\FolderNameList.csv'

foreach ($Row in $Rows)
{
    $Name = $Row.Col1
    # replace 'Col1' with whatever the column header is
    $Path = Join-Path $BaseFolder $Name

    $Suffix = $Row.Col2  # or whatever

    $NewName = "$Name $Suffix"
    Rename-Item $Path $NewName
}

那应该能治好你。
但是,在对许多文件运行脚本之前,请将foreach ($Row in $Rows)更改为foreach ($Row in $Rows[0])。这样它将只对第一个文件运行。* 检查它是否按预期运行!*
如果可以,就把[0]取出来(如果不想看到错误文本,就删除CSV的第一行,因为第一行已经完成了)。

相关问题