如何用PowerShell为无扩展名文件添加指定扩展名?脚本报错求助
解决无扩展名文件批量添加PDF扩展名的PowerShell问题
你的脚本报错根源是**($file.FullName.$ext)的写法错误**:$file.FullName是文件的完整路径字符串,不是PowerShell对象,不能用.语法拼接扩展名,这直接导致NewName参数为空,触发报错。
Rename-Item完全适用于这个批量重命名任务,以下是两种正确的实现方式:
方式一:循环遍历并手动构造新路径
Clear-Host $dir = "C:\temp\sugar" $ext = ".pdf" $files = Get-ChildItem -Path $dir foreach ($file in $files){ # 仅处理文件,跳过文件夹 if (-not $file.PSIsContainer) { # 拼接基名与扩展名,用Join-Path确保路径格式正确 $newFullPath = Join-Path -Path $dir -ChildPath ($file.BaseName + $ext) Rename-Item -Path $file.FullName -NewName $newFullPath } }
方式二:管道+脚本块(更简洁)
Clear-Host $dir = "C:\temp\sugar" $ext = ".pdf" # -File 直接筛选文件,无需额外判断;-WhatIf 用于预览重命名操作,确认无误后可移除 Get-ChildItem -Path $dir -File | Rename-Item -NewName { $_.BaseName + $ext } -WhatIf
关键说明
$file.BaseName(或管道中的$_.BaseName)会自动获取不带扩展名的文件名,正好适配你无扩展名文件的场景。- 第二种方式中的
-WhatIf参数非常实用,它会输出将要执行的重命名操作但不会实际修改文件,确认逻辑正确后再删掉该参数执行真实操作。
内容的提问来源于stack exchange,提问作者luke kilminster
相关产品推荐
相关产品推荐

