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

如何递归移除文件名称中的‘ test today’内容?

批量递归移除文件名中的“ test today”字符串

针对递归处理目录及子目录中所有名称格式为* test today.cpp的文件,移除文件名里的“ test today”部分,以下是正确解决方案及对之前错误方案的说明:

正确解决方案

PowerShell 命令

Get-ChildItem -Recurse -Filter "* test today.cpp" | Rename-Item -NewName { $_.Name -replace ' test today', '' }
  • -Recurse 参数确保遍历所有子目录
  • -Filter 精准筛选目标文件,提升处理效率
  • 脚本块{ $_.Name -replace ' test today', '' }仅对文件名部分做替换,避免路径相关错误

CMD 脚本

@echo off
setlocal enabledelayedexpansion
for /r %%F in ("* test today.cpp") do (
    set "filename=%%~nxF"
    set "newname=!filename: test today=!"
    ren "%%F" "!newname!"
)
endlocal
  • %%~nxF 提取文件的纯文件名(含后缀),避免误修改路径部分
  • 启用enabledelayedexpansion确保循环内变量替换正常生效

之前方案失败原因

  • PowerShell 方案:缺少-Recurse参数未处理子目录,且Rename-Item直接使用$_.Name会导致非当前目录的文件找不到(需操作文件对象而非仅文件名)
  • CMD 循环方案:直接将完整路径赋值给变量并替换,可能意外修改路径中的字符串,导致重命名失败
  • 直接ren命令:CMD的ren不支持递归,且通配符替换仅适用于前缀/后缀匹配,无法处理中间字符串的移除
  • FOR /R 命令:通配符写法错误(未加引号),且ren "%x" "*.cpp"的通配符逻辑无法正确移除中间的“ test today”

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:45:23