You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:08:33