首页 > 解决方案 > 使用 PowerShell 重命名给定目录和子文件夹中没有扩展名的所有文件

问题描述

我需要在 PowerShell 中编写一个脚本,它重命名给定目录和所有子文件夹下的所有没有扩展名的文件。通过重命名,我的意思是向没有它的文件添加扩展名,例如“.html”。到目前为止,我已经尝试构建这样的东西:

Get-ChildItem -Path 'C:\dev\blah' -Filter *. -Recurse | ForEach-Object {
    Rename-Item -Path $_.FullName -NewName ($_.FullName + ".html")
}

标签: powershell

解决方案


您需要从枚举项目中排除文件夹。-File如果您正在运行 PowerShell v3 或更新版本,请使用该开关,否则请添加一个Where-Object过滤器。此外,您不需要ForEach-Object因为Rename-Item接受管道输入。

Get-ChildItem -Path 'C:\dev\blah' -Filter *. -Recurse | Where-Object {
    -not $_.PSIsContainer
} | Rename-Item -NewName {$_.Name + ".html"}

推荐阅读