PowerShell使用Rename-Item重命名文件报错“找不到项目”求助
解决PowerShell重命名JPG文件时的“Could not find item”错误
问题根源分析
你的命令存在三个关键问题:
- 语法错误:
replace("__",""))末尾多了一个右括号,导致PowerShell解析命令失败 - 替换范围错误:
.Replace("__","")会替换文件名中所有双下划线,而不是仅开头的前导双下划线 - 路径解析问题:直接传递
$_给Rename-Item时,若文件名含空格或特殊字符,PowerShell可能无法正确识别文件路径
修复后的命令
Get-ChildItem -Filter *.jpg | ForEach-Object { Rename-Item -Path $_.FullName -NewName ($_.Name -replace '^__', '') }
关键修复点说明
- 移除多余括号:修正语法错误,确保命令可正常解析
- 精准匹配前导下划线:使用PowerShell的
-replace正则表达式操作符,^__仅匹配文件名开头的双下划线,避免误替换其他位置的下划线 - 指定完整路径:用
$_.FullName作为源文件路径,确保PowerShell能准确定位文件,解决“找不到项目”的核心问题
测试建议(可选)
执行重命名前,先验证新文件名是否符合预期:
Get-ChildItem -Filter *.jpg | ForEach-Object { Write-Host "原文件名: $($_.Name) → 新文件名: $($_.Name -replace '^__', '')" }
关于长路径的补充说明
如果确实存在Windows长路径限制问题,可在PowerShell中启用长路径支持:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1
修改后需重启PowerShell生效,即可支持超过260字符的路径。
内容的提问来源于stack exchange,提问作者Brian Curtis
相关产品推荐
相关产品推荐

