Powershell 重命名文件

Powershell 重命名文件

我需要用 Powershell 重命名超过 1000 个文件,但需要帮助,因为我对该工具不太熟悉...已经尝试了很多代码,但都没有用 :-(

这里有一些示例文件:

342453-gggssd - 迈克·奥德菲尔德
ggiuk_3245435sss - 梅丽莎·布莱克
File-435435-23423 - 汤姆·汉克斯

我只想保留员工姓名

迈克·奥德菲尔德
梅丽莎·布莱克
汤姆·汉克斯

有 pdf、jpeg、docx、png 文件。所有文件都在一个文件夹中。
有人能帮我吗?

提前谢谢了!

答案1

查看您的示例文件名,我发现一个不变的因素是员工姓名与任何前面的文本之间都以 分隔<space>-.space>。以该序列为目标将避免与“前缀”序列中的连字符混淆,并允许使用带连字符的姓氏。所以这是一个简单的字符串操作练习。最难的部分是选择要使用哪种方法!以下是您可以复制和粘贴以查看其实际效果的两个选项:

  • -分裂操作员:
    • ('342453-gggssd - Mike Oldfield' -split ' - ')[-1]
  • -代替操作员:
    • '342453-gggssd - Mike Oldfield' -replace '^.+ - '

您需要对每个文件的基本名称执行此操作,并将其与现有扩展名组合以构造新名称:

$SourceDir = 'c:\Path\To\Source\Folder'
Get-ChildItem -Path $SourceDir -File | Rename-Item -NewName { ( $_.BaseName -replace '^.+ - ' ) + $_.Extension }

这是详细版本,您应该在编写脚本时使用它。随着您熟练掌握别名和位置参数,在控制台上以交互方式工作时,它可以缩短为:

gci $SourceDir -af | ren -new { ( $_.BaseName -replace '^.+ - ' ) + $_.Extension }

相关内容