我已经查找了与我的问题有关的问题,但找不到正确的语法来用于我想要实现的目标。
我想使用Get-ChildItem从文件夹中获取所有文件名,并将它们存储在变量中,然后使用这些名称重命名另一个文件夹中的所有文件。
从我所看到的,我需要类似的东西:
CD directory a
$newnames = Get-ChildItem
CD directory b
Get-ChildItem | Foreach {$name = $newnames} | Rename-Item -Newname {$name}
我想也许我面临的问题是从$ newnames变量中正确调用名称。
任何人都可以建议我需要做的正确语法吗?
答案 0 :(得分:2)
假设您在这些文件夹中拥有相同数量的文件,这是一种方法。删除-WhatIf开关以实际重命名文件:
[array]$a = Get-ChildItem .\DirA
[array]$b = Get-ChildItem .\DirB
for($i=0; $i -lt $a.Length; $i++)
{
$b[$i] | Rename-Item -NewName $a[$i] -WhatIf
}