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

Win PowerShell关联.dgn至Bentley MicroStation失败,求排查问题

解决.dgn文件关联到Bentley MicroStation的PowerShell脚本问题

你的错误核心是带空格的文件类型名称未加引号,同时PowerShell与cmd的环境变量解析规则存在差异,导致命令执行失败。

错误原因分析

  • ftype命令中,文件类型名称Bentley Microstation Design包含空格,cmd会将其拆分为多个参数,把Bentley当作目标文件类型,自然找不到对应的类型,因此抛出错误。
  • 你使用的%PROGRAMFILES(X86)%是cmd的环境变量语法,在PowerShell中直接传递给cmd时,容易出现解析异常,建议适配PowerShell的变量写法。

修正后的解决方案

方案1:修正cmd命令的引号使用

在PowerShell中执行以下命令,重点给带空格的文件类型名称加双引号:

cmd /c 'assoc .dgn="Bentley Microstation Design"'
cmd /c 'ftype "Bentley Microstation Design"="%PROGRAMFILES(X86)%\Bentley\MicroStation V8i (SELECTseries)\MicroStation\ustation.exe" "%1" "%*"'
  • 用单引号包裹整个cmd命令,避免PowerShell解析内部的双引号和变量;
  • 给Bentley Microstation Design加双引号,确保cmd将其识别为一个完整的文件类型名称;
  • 给%1和%*也加引号,避免路径带空格时出现参数拆分错误。

方案2:使用PowerShell原生注册表操作(更可靠)

assoc和ftype本质是修改注册表,直接操作注册表可避免cmd的解析问题,需以管理员权限执行:

# 设置.dgn扩展名关联的文件类型
Set-ItemProperty -Path "HKLM:\Software\Classes\.dgn" -Name "(Default)" -Value "Bentley Microstation Design"

# 设置文件类型对应的打开命令
Set-ItemProperty -Path "HKLM:\Software\Classes\Bentley Microstation Design\shell\open\command" -Name "(Default)" -Value "`"${env:ProgramFiles(x86)}\Bentley\MicroStation V8i (SELECTseries)\MicroStation\ustation.exe`" `"%1`" `"%*`""
  • 使用${env:ProgramFiles(x86)}直接调用PowerShell的环境变量,避免跨shell的解析问题;
  • 用反引号`转义双引号,确保路径和参数被正确识别。

验证方法

执行完脚本后,右键点击任意.dgn文件,选择“打开方式”,查看默认程序是否为Bentley MicroStation;也可以再次执行cmd /c assoc .dgn和cmd /c ftype "Bentley Microstation Design"确认设置是否生效。

内容的提问来源于stack exchange,提问作者Grot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:00:24