加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 使用PowerShell重命名文件

发布时间:2020-12-13 23:04:19 所属栏目:Windows 来源:网络整理
导读:我需要在 Windows PowerShell中一次重命名一堆文件.我阅读了HTG文章 here,它有所帮助. 我的问题是,它只会重命名目录顶部的文件,没有更深层次的内容.例如:有FOLDER A,FOLDERA里面是文件和FOLDER B.里面的FOLDER B是另一个文件.需要重命名文件夹和两个文档.它
我需要在 Windows PowerShell中一次重命名一堆文件.我阅读了HTG文章 here,它有所帮助.

我的问题是,它只会重命名目录顶部的文件,没有更深层次的内容.例如:有FOLDER A,FOLDERA里面是文件和FOLDER B.里面的FOLDER B是另一个文件.需要重命名文件夹和两个文档.它现在的工作方式是FOLDER A,FOLDER A中的文档和FOLDER B正在重命名,但不是FOLDER B中的文档.

我目前的代码是:

Dir | Rename-Item –NewName { $_.name –replace “ “,”_” }

谢谢您的帮助!

您需要在Dir上指定-Recurse参数以使其递归,例如:
Dir -recurse | Rename-Item -NewName {$_.Name -replace ' ','_'}

顺便说一句,这可能会遇到问题,因为您首先重命名包含文档的文件夹(FOLDERB),但与FOLDERB中的文件对应的管道项仍具有旧名称.在这种情况下,您想从下往上重命名.一个非常粗略但有效(我认为)这样做的方法是对文件项的路径长度进行排序,例如:

Dir -recurse | Sort {$_.FullName.Length} -Desc | Rename-Item {$_.Name -replace ' ','_'}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读