file - 将文件20140914_foo.pdf重命名为2014-09-14 Sunday.pdf

标签 file powershell rename

我有一份报纸目录:

20140914_foo.pdf
20140915_foo.pdf
20140916_foo.pdf

我想将它们重命名为
2014-09-14 Sunday.pdf
2014-09-15 Monday.pdf
2014-09-16 Tuesday.pdf

这两个语句可以解决问题:
Get-ChildItem | Rename-Item -NewName {$_.Name.Insert(4,'-').Insert(7,'-') -replace 'foo', ''}
Get-ChildItem | Rename-Item -NewName {$_.BaseName + ' ' + (get-date($_.BaseName)).DayOfWeek + $_.Extension}

有没有一种优雅的方式可以做到这一点?

最佳答案

编辑:添加了弗罗德的建议
尝试此操作,代码将拆分文件名,将日期字符串解析为[datetime]类型并提取其属性以构建所需的名称:

Get-ChildItem | % {
    $date = [datetime]::ParseExact(($_.Name -split "_")[0],"yyyyMMdd",$null)
    $newName = "$($date.ToString("yyyy-MM-dd")) $($date.DayOfWeek).pdf"
    ren $_ $newName
}

关于file - 将文件20140914_foo.pdf重命名为2014-09-14 Sunday.pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837946/

相关文章:

java - 使用 Xuggler 从 mp4 创建 mp3

PowerShell 脚本将 SQL 导出为 CSV 添加分隔符

PowerShell - 响应命令响应

java - 创建新的 File 实例是否会导致创建空文件?

linux - 监控/dev/null 2>&1

powershell - 使用现有的根证书颁发机构签署证书

regex - Bash 正则表达式在行开头匹配 "./"?或者使用前导 "-"重命名文件

重命名 R 中的行和列

java - Amazon Web Services S3 中的线程安全文件重命名

Android - 加载文件夹中的所有文件