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

PowerShell批量重命名文件:去前缀0加_16后格式异常求助

解决PowerShell重命名文件时扩展名异常问题

你的问题出在直接对包含扩展名的完整文件名($_.Name)进行操作,导致_16被追加到了扩展名后面。正确的做法是分离文件名主体(不含扩展名)和扩展名,分别处理后再拼接。

修改后的脚本如下:

$files = Get-ChildItem -File -Filter 0*
$files | Rename-Item -NewName { 
    # 提取文件名主体,去除前缀0后添加_16
    $processedName = $_.BaseName.TrimStart('0') + "_16"
    # 拼接处理后的文件名和原扩展名
    $processedName + $_.Extension
}

关键说明:

  • $_.BaseName:获取文件的主体名称(不含扩展名,比如000145.jpg的BaseName是000145)
  • $_.Extension:获取文件的扩展名(比如.jpg)
  • 先对BaseName处理前缀0并添加_16,再和原扩展名拼接,就能得到145_16.jpg、29_16.jpg这类符合预期的文件名。

如果遇到文件名主体全是0的情况(比如0000.jpg),TrimStart('0')会得到空字符串,这时候可以加个判断确保文件名合法:

$files = Get-ChildItem -File -Filter 0*
$files | Rename-Item -NewName { 
    $trimmedName = $_.BaseName.TrimStart('0')
    $processedName = if ($trimmedName -eq '') { '0_16' } else { $trimmedName + "_16" }
    $processedName + $_.Extension
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:55:18