重命名项目,转换日期格式

问题描述 投票:1回答:1

我在文件名中转换日期格式有问题。有没有办法重命名文件使用

Dir | Rename-Item -NewName { $_.Name }

转换

dd.mm.yyyyy_string.txt

yyyyy.mm.dd_string.txt

或者使用PowerShell以另一种方式重命名目录中的文件

powershell file-rename
1个回答
1
投票

有几种方法可以完成您的任务,

这是依赖于给定结构的一个

dd.mm.yyyyy_string.txt

并使用.split()方法将BaseName剪切成碎片,

重新排序它们并将它们与字符串格式运算符组合在一起。

Get-ChilItem ??.??.????_*.txt -File | 
  Rename-Item -NewName {("{0}.{1}.{2}_{3}" -f $_.BaseName.split('._',4)[2,1,0,3])+$_.extension} -WhatIf

这甚至与上面的字符串一起工作,而不仅仅是日期中的数字。 重新格式化的样本输出(德语区域设置):

WhatIf: Ausführen des Vorgangs "Datei umbenennen" für das 
Ziel "Element: A:\dd.mm.yyyy_string.txt  
Ziel:          A:\yyyy.mm.dd_string.txt".

如果输出看起来没问题,请删除尾随的-WhatIf

为了更好地限制实际日期插入一个Where-Object

Get-ChilItem ??.??.????_*.txt -File | 
  Where-Object BaseName -match '^[0-3][0-9]\.[01][0-9]\.\d{4}_' |
    Rename-Item -NewName {("{0}.{1}.{2}_{3}" -f $_.BaseName.split('._',4)[2,1,0,3])+$_.extension} -WhatIf
© www.soinside.com 2019 - 2024. All rights reserved.