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

PowerShell按指定规则重命名文件,修改下划线间特定字段的方法

PowerShell 按规则批量重命名文件实现方案

定位第N个分隔符之间字符串的方法

在PowerShell中处理固定分隔符分割的字符串,最简单的方式是先使用Split()方法将字符串拆分为数组,数组索引从0开始计数,第M个与第M+1个分隔符之间的内容,对应数组索引为M的元素。
以你给出的示例文件名按下划线_分割后,对应关系如下:

# 拆分后的数组索引对应关系
索引0:TRD
索引1:123456789
索引2:ABC123456789
索引3:YYMMDD
索引4:HHMMSS → 第4、5个下划线之间的内容
索引5:12345678
索引6:12345 → 第6、7个下划线之间的内容
索引7及之后:冗余的blabla部分

要删除第7个下划线之后的内容,只需要保留数组前7个元素(索引0-6)即可。

完整实现脚本

# 配置要处理的文件所在目录
$targetDir = "C:\你的文件存储路径"
# 获取目录下所有无后缀的目标文件,可根据实际情况调整筛选条件
Get-ChildItem -Path $targetDir -File | ForEach-Object {
    $originalName = $_.Name
    # 按下划线拆分文件名
    $nameParts = $originalName.Split('_')
    # 仅保留前7段内容,删除第7个下划线后的冗余部分
    $validParts = $nameParts[0..6]
    # 替换第4、5个下划线之间的HHMMSS为当前时分秒,HH为24小时制,hh为12小时制
    $validParts[4] = Get-Date -Format "HHmmss"
    # 生成包含数字、大小写字母的5位随机字符串,若仅需数字可调整范围
    $random5 = -join (48..57 + 65..90 + 97..122 | Get-Random -Count 5 | ForEach-Object {[char]$_})
    # 替换第6、7个下划线之间的字段为随机值
    $validParts[6] = $random5
    # 拼接新文件名并添加.csv后缀
    $newName = ($validParts -join '_') + ".csv"
    # 执行重命名,测试阶段可先注释下行,打开下下行输出验证文件名是否正确
    Rename-Item -Path $_.FullName -NewName $newName
    # Write-Output "原文件名:$originalName → 新文件名:$newName"
}

注意事项

  • 脚本默认生成的随机字符串包含数字、大小写英文字母,若你仅需要数字,可将生成随机值的代码替换为:$random5 = -join (0..9 | Get-Random -Count 5)
  • 时间格式HHmmss为24小时制,若需要12小时制可修改为hhmmss
  • 正式执行前建议先注释Rename-Item行,打开Write-Output行预览转换结果,确认符合要求后再执行重命名操作,避免误改文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:54:01