非常第一次使用PowerShell,并希望重命名在我的排名文件夹中以50到40开头的文件和目录
最初我试过这个
foreach($Directory in Get-ChildItem 'D:\Issues\' -Recurse -Directory)
{
Rename-Item $Directory -NewName $($Directory.Name -replace "50","40")
}
但它也尝试使用文件夹,甚至尝试使用其中没有50的目录
我第二次尝试
Get-ChildItem -Recurse | Rename-Item {$_.FullName -replace '50','40'}
但是这个错误出现在
中Rename-Item:找不到接受参数' $ _的位置参数.FullName -replace' 70'' 80''。在行:1 char:26
我真正想念的是什么?
我已尝试使用另外两个命令,它实际上有效,但会带来红色错误
For Files
foreach($File in Get-ChildItem 'D:\Issues\' -Recurse -file)
{
Rename-Item $file -NewName $($_.Name -replace "50","40")
}
错误
Rename-Item:无法将参数绑定到参数' NewName'因为它是一个空字符串。在行:3 char:32
对于目录
foreach($Directory in Get-ChildItem 'D:\Issues\' -Recurse -Directory)
{
Rename-Item $Directory -NewName $($Directory.Name -replace "50","40")
}
答案 0 :(得分:1)
您需要过滤Get-ChildItem
以仅返回您要重命名的项目。这可以使用Include
param:
Get-ChildItem D:\Issues -Include 50* -Recurse | Rename-Item -NewName {$_.Name -replace '50','40'}