如何在PowerShell中重命名文件?

如何在PowerShell中重命名文件?,powershell,Powershell,我有两个任务要使用PowerShell执行: 1-我还需要将所有index.asp重命名为Default.aspx 2-我有一个目录C:\WWW,在那里我需要递归地将所有.asp文件重命名为.aspx 我尝试了重命名项命令,但总是出现错误 当文件已存在时,无法创建该文件 如何重命名PowerShell中的文件?使用Get-ChildItemcmdlet获取所有index.asp文件。将结果导入重命名项cmdlet,并为文件指定新名称 Get-ChildItem c:\www -Filter In

我有两个任务要使用PowerShell执行:

1-我还需要将所有index.asp重命名为Default.aspx

2-我有一个目录
C:\WWW
,在那里我需要递归地将所有
.asp
文件重命名为
.aspx

我尝试了
重命名项
命令,但总是出现错误

当文件已存在时,无法创建该文件


如何重命名PowerShell中的文件?

使用
Get-ChildItem
cmdlet获取所有index.asp文件。将结果导入
重命名项
cmdlet,并为文件指定新名称

Get-ChildItem c:\www -Filter Index.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName Default.aspx
,这将获得index.aspx文件,因此将结果通过管道传输到“Where Object”cmdlet,并根据文件扩展名进行筛选

对asp文件执行同样的操作,请注意,现在您也将获得.aspx文件,因此将结果通过管道传递到“Where Object”cmdlet,并根据文件扩展名进行筛选。在新名称中,只取每个文件的基本名称(不带扩展名)并将其附加到“.aspx”

Get-ChildItem c:\www -Filter *.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName {$_.BaseName + '.aspx'}

工作得很好。谢谢你的支持assistance@Shay在第一行代码中,您正在筛选Index.asp,然后
Where
ing for.asp以消除.aspx的查找。对我来说,在同时包含
Index.asp
Index.aspx
的目录中过滤
Index.asp
,只会导致它找到前者;“有什么东西可能导致这两个不同的结果,或者这只是一个疏忽吗?”斯佩林说得对,我得到了同样的结果。有趣的是,当您使用通配符进行筛选时,您也会得到aspz文件,但当您指定文件名时,您只会得到asp文件!谢谢你指出这一点,我将更新我的答案。@ UnReal1969高兴你发现它有用,考虑把它标记为答案。