我有两个任务需要使用PowerShell完成:
1 - 我还需要将所有的index.asp重命名为Default.aspx。
2 - 我有一个目录C:\WWW,需要递归地将所有的.asp文件重命名为.aspx。
我尝试过Rename-Item命令,但总是出现错误。
当该文件已经存在时无法创建文件
如何在PowerShell中重命名文件?
我有两个任务需要使用PowerShell完成:
1 - 我还需要将所有的index.asp重命名为Default.aspx。
2 - 我有一个目录C:\WWW,需要递归地将所有的.asp文件重命名为.aspx。
我尝试过Rename-Item命令,但总是出现错误。
当该文件已经存在时无法创建文件
如何在PowerShell中重命名文件?
Get-ChildItem
cmdlet 获取所有 index.asp 文件。将结果传递到 Rename-Item
cmdlet 并给文件赋予新名称。Get-ChildItem c:\www -Filter Index.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName Default.aspx
要获取index.aspx文件,可以使用管道符将结果发送到“Where-Object”命令,根据文件扩展名进行筛选。
同样,要处理asp文件,注意现在也会得到.aspx文件,所以需要将结果发送到“Where-Object”命令,并根据文件扩展名进行过滤。在新名称中,只需获取每个文件的基本名称(不包括扩展名),并附加“.aspx”后缀。
Get-ChildItem c:\www -Filter *.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName {$_.BaseName + '.aspx'}
Where
条件过滤 .asp 以消除 .aspx 的查找。对于我来说,在一个同时包含Index.asp
和Index.aspx
的目录中过滤Index.asp
只会找到前者;是否有什么原因导致这两种不同的结果,还是只是疏忽呢? - SpellingD