【发布时间】:2018-11-05 16:55:36
【问题描述】:
我在这个问题上得到了一些帮助
Renaming a range from files w/Powershell - from first to third from last hyphen
效果很好,但现在我遇到了一个新问题。
我的 csv 文件名现在有随机数的连字符,如下所示:
abc-def-ghi-jkl-mno-pqr-s-tuv-ke-traffic-by-domains-17-Oct-2018_23-49-38-6d73395f476ad09a7506dc00533933b8.csv
abc-def-ghi-jkl-ke-traffic-by-domains-15-Oct-2018_05-20-36-75eabae7c4123198ff5fe6f4f642449f.csv
abc-def-ghi-jkl-mno--ke-traffic-by-domains-12-Oct-2018_06-23-58-b13eb8f362c09fbe405458fac8af8f8e.csv
连字符的数量因文件而异。
我想用 powershell 将它们重命名为
abc-17-Oct-2018.csv
abc-15-Oct-2018.csv
abc-12-Oct-2018.csv
我尝试了以下方法:
1.删除“_”后的所有内容
Get-ChildItem -Filter *.csv | Foreach-Object -Process {
$NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.csv'
$_ | Rename-Item -NewName $NewName
}
2.删除第一个“-”之后直到“ke-traffic-by-domains-”的所有内容
Get-ChildItem -Filter *.csv | Rename-Item -NewName {
$word = "-*ke-traffic-by-domains-"
$NewName = $_.Name -split $word + '.csv'
$_ | Rename-Item -NewName $NewName
}
但我坚持使用正则表达式删除第 2 个范围。
有人可以告诉我更改文件名的方法吗?
【问题讨论】:
标签: powershell