第一个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
我到底错过了什么?
我已经尝试了2个以上的命令,它实际上有效,但会带来红色错误
对于文件
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")
}
您需要过滤Get-ChildItem
以仅返回要重命名的项目。这可以使用Include
param完成:
Get-ChildItem D:\Issues -Include 50* -Recurse | Rename-Item -NewName {$_.Name -replace '50','40'}