【发布时间】:2017-02-12 03:37:43
【问题描述】:
在人事文件夹中,有由人事主管创建的有关员工辅导的文件。这些文件 ALWAYS 的命名约定应类似于
Supervisorname.SXXEXX.NameOfIssue.doc
所以进一步细分:
- 主管姓名 = Bob Godfrey
- SXX = 规定编号(01 - 99 始终为 2 位数字,但并非所有数字都使用)
- EXX = 员工编号(始终为 2 位,我们还没有达到需要移动到 3 位或 E 以外的差异前缀的地步......)
因此示例名称将是 Bob Godfrey.S48E99.Issue With Blue.doc - 但是,由于某些主管没有遵守规则,因此有些文件没有 . 分隔符,我们的文件看起来像
Bob Godfrey - S48E99 - Issue With Blue.doc
Bob Godfrey X S48E99 - Issue With Blue.doc
Bob Godfrey S48E99 - Issue With Blue.doc
出于规范化的目的,(并且为了我不要在此过程中拔出头发)我尝试使用以下语法来获取这些异常值并现在重命名它们(大约有 300 个),而这似乎可以正常执行, 文件不会被重命名。
我需要更改什么才能使这些文件相应地重命名?
Get-ChildItem -Path R:\Personnel\ -Filter *.doc |
Rename-Item -NewName { $_.BaseName.Replace(" - ", ".") + $_.Extension } -Verbose
Get-ChildItem -Path R:\Personnel\ -Filter *.doc |
Rename-Item -NewName { $_.BaseName.Replace(" X ", ".") + $_.Extension } -Verbose
【问题讨论】:
-
如果我没记错的话 - 示例行不应该在 SXX 和 EXX 之间有一个点吗?
-
@LotPings - 不,SXX 和 EXX 之间不应该有一个点。