首页 > 解决方案 > 如何在 PowerShell 中使用数组模式新名称重命名文件?

问题描述

我想重命名一些文件。这取决于我拥有的字符串新名称数组。我试过这个,但文件正在重命名。我的期望,该文件只重命名 3 个文件,因为我只有 3 个数组。请帮助任何人有想法。非常感谢。

$Names = @("Student", "Employee", "Married")

$DataFile = Get-ChildItem -Path .\*.txt #There are more than 10 files

foreach ($name in $Names)
{
     $DataFile | Rename-Item -NewName {"$name" + $_.Name} 
}

标签: arrayspowershellloopsrename

解决方案


如果您只想重命名与$Names数组中的字符串一样多的文件,您可以执行以下操作:

$Names = 'Student', 'Employee', 'Married'
$count = 0
Get-ChildItem -Path .\*.txt | Select-Object -First ($Names.Count) | ForEach-Object {
    $_ | Rename-Item -NewName ('{0}-{1}' -f $Names[$count++], $_.Name)
}

推荐阅读