【发布时间】:2019-03-23 21:40:24
【问题描述】:
我有一堆 csv 文件,我想用 powershell 重命名。
来自
abc-def-ghi-jkl-mno-pqr-ke-traffic-by-domains-17-Oct-2018_23-49-38-6d73395f476ad09a7506dc00533933b8.csv
abc-def-ghi-jkl-mno-pqr-ke-traffic-by-domains-15-Oct-2018_05-20-36-75eabae7c4123198ff5fe6f4f642449f.csv
abc-def-ghi-jkl-mno-pqr-ke-traffic-by-domains-12-Oct-2018_06-23-58-b13eb8f362c09fbe405458fac8af8f8e.csv
到
abc-17-Oct-2018.csv
abc-15-Oct-2018.csv
abc-12-Oct-2018.csv
我可以用这个命令删除下划线 (_) 后面的字符
Get-ChildItem -Filter *.csv | Foreach-Object -Process {
$NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.csv'
$_ | Rename-Item -NewName $NewName}
这导致我找到这个文件名
abc-def-ghi-jkl-mno-pqr-ke-traffic-by-domains-17-Oct-2018.csv
但是我在删除从第一个连字符到最后一个连字符的第三个字符范围时迷失了。
我试过这个,但得到一个错误。
Get-ChildItem -Filter *.csv | Rename-Item -NewName {
-replace '^[^-]..^[^-]{-3}','^[^-]'}
有人可以告诉我如何擦除范围吗? (并可能结合前一个命令)
【问题讨论】:
-
文件名中的连字符数是否始终相同?
-
主要是,但如果我可以安排要删除的连字符的数量会更好。 +感谢您的回答。
标签: powershell renaming