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

在PowerShell中从文件名提取日期出现FormatException错误如何解决

PowerShell文件名提取日期FormatException错误修复方案

错误原因

触发报错的核心原因有两个:

  • 索引取值错误:用_拆分示例文件名TBTT_UAT_01012021_000019.csv时,得到的数组索引从0开始计数,对应内容如下:
    • 索引0:TBTT
    • 索引1:UAT
    • 索引2:01012021(目标日期字段)
    • 索引3:000019.csv
      原代码中取[4]属于越界取值,实际拿到了索引3的序号+后缀字符串,无法解析为日期格式。
  • 日期格式不匹配:目标日期字符串格式为无分隔符的ddMMyyyy,原代码传入的格式参数为带斜杠的dd/MM/yyyy,即使拿到正确的日期字符串也会解析失败。

修复后代码

$splitName = $filename -split '_'
# 增加拆分结果校验,避免不符合命名规则的文件触发报错
if ($splitName.Count -ge 3) {
    $fileDateText = $splitName[2]
    # 可选操作:清理字符串里的非数字字符,避免后缀残留影响解析
    $fileDateText = $fileDateText -replace '[^0-9]', ''
    $fileDate = [System.DateTime]::ParseExact($fileDateText, "ddMMyyyy", [System.Globalization.CultureInfo]::InvariantCulture)
}
else {
    Write-Warning "文件名 $filename 不符合约定命名规则,已跳过处理"
}

如果实际文件名的下划线分隔段数和示例不同,调整$splitName[2]中的索引值,对应到日期字段所在的位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:09:04