使用PowerShell重命名给定目录和子文件夹中所有没有扩展名的文件

时间:2018-12-07 09:47:17

标签: powershell

我需要在PowerShell中编写一个脚本,该脚本重命名给定目录及其所有子文件夹下没有扩展名的所有文件。重命名是指添加扩展名,例如“ .html”到没有该文件的文件。 到目前为止,我已经尝试构建如下内容:

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

1 个答案:

答案 0 :(得分:2)

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

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