You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理文件(非脚本)中用PowerShell重命名文件夹及子文件夹文件?

递归批量重命名文件的解决方案

我来帮你搞定这个递归重命名的需求!你之前的命令只处理了当前文件夹的文件,是因为gci(也就是Get-ChildItem)默认不会遍历子文件夹。只需要加几个参数就能实现递归处理所有子文件夹里的文件。

修改后的完整批处理命令

powershell -Command "Get-ChildItem -Recurse -File | ForEach-Object { Rename-Item -Path $_.FullName -NewName ($_.Name -replace '15June', '01July') }"

关键参数解释

  • -Recurse: 让Get-ChildItem遍历当前目录以及所有子目录,不会漏掉深层文件夹里的文件
  • -File: 明确只处理文件,避免误操作重命名文件夹(如果不需要排除文件夹,可以去掉这个参数)
  • $_.FullName: 使用文件的完整路径作为Rename-Item的-Path参数,确保即使在子文件夹里也能正确定位文件(只用$_.Name会导致PowerShell在当前目录找文件,引发错误)

测试建议(避免误操作)

如果你想先看看哪些文件会被重命名,不想实际执行修改,可以加上-WhatIf参数,它会输出预期的修改结果但不真的改名:

powershell -Command "Get-ChildItem -Recurse -File | ForEach-Object { Rename-Item -Path $_.FullName -NewName ($_.Name -replace '15June', '01July') -WhatIf }"

小提示

  • 命令里的15June和01July是大小写敏感的,如果需要忽略大小写,可以把替换规则改成($_.Name -replace '(?i)15June', '01July')
  • 如果你的文件名里有特殊字符,这个命令也能正常处理,PowerShell比原生批处理更擅长处理复杂文件名

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:45:58