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

PowerShell递归重命名专辑目录cover*.jpg为folder.jpg报错求助

问题修复:递归重命名cover*.jpg为folder.jpg

原代码的错误分析

  1. 第一段代码:

    • 语法不完整,缺少闭合的},导致PowerShell无法解析整个命令块
    • 虽直接用$_作为Rename-Item的路径参数多数情况能工作,但使用$_.FullName指定完整路径更稳妥
  2. 第二段代码:

    • Where-Object语法错误,不能在条件判断块后直接跟执行命令的块,必须通过管道将过滤后的对象传递给ForEach-Object执行重命名
    • 匹配规则"Cover.jpg"太严格,不符合你要匹配cover*.jpg的需求

正确的PowerShell命令

写法一:使用Get-ChildItem过滤参数(更高效)

Get-ChildItem -Path "O:\FILES_IN_PROCESS\!!FINISHED!!\_MUSIC" -Filter "*cover*.jpg" -Recurse | ForEach-Object {
    Rename-Item -Path $_.FullName -NewName "folder.jpg" -Force
}

写法二:使用Where-Object过滤

Get-ChildItem -Path "O:\FILES_IN_PROCESS\!!FINISHED!!\_MUSIC" -Recurse | Where-Object { $_.Name -ilike "*cover*.jpg" } | ForEach-Object {
    Rename-Item -Path $_.FullName -NewName "folder.jpg" -Force
}

参数说明

  • -Filter "*cover*.jpg":在文件系统层面直接过滤文件名,比后续用Where-Object过滤效率更高
  • -ilike "*cover*.jpg":不区分大小写匹配所有包含cover的jpg文件,适配Windows文件系统的大小写不敏感特性
  • -Force:如果目标文件夹已存在folder.jpg,强制覆盖该文件;不需要覆盖可移除该参数
  • $_.FullName:确保重命名操作针对文件的完整路径,避免因当前工作目录导致的路径歧义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:31:00