重命名文件 - 在文件名中将“yyyyMMdd”转换为“MMM-yy”

Mat*_*les 1 regex powershell filenames date

我有一长串文件,它们都以“yyyyMMdd”格式的日期结尾,需要将它们更改为“MMM-yy”。解决这个问题的最佳方法是什么?

例如“file_one_20120620.pdf”>“file_one_JUN-12.pdf”

  1. 使用正则表达式定位“日期”
  2. 提取和操作日期
  3. 重新命名文件

Joey 在下面建议了一个 Powershell 脚本,看起来它应该可以工作,但我一直在撞墙,即使在更改提供的代码时也是如此。任何帮助都会很棒,谢谢!

Joe*_*oey 5

您可以使用 PowerShell 执行此操作:

gci | # get files
  foreach {
    $newName = [Regex]::Replace($_.BaseName, '\d{8}$', {
      param($m)
      [datetime]::ParseExact($m.Value, 'yyyyMMdd', $null).ToString('dd-MMM')
    }) + $_.Extension
    Rename-Item $_ $newName
  }
Run Code Online (Sandbox Code Playgroud)

  • 嗯;正则表达式部分工作正常(这是我最怀疑的)。但是,在这种情况下,您应该在 Rename-Item 上使用 `-WhatIf` 以防止数据丢失。我会在几分钟内尝试是否可以挽救这个。 (2认同)