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

PowerShell脚本转换.vss到.vssx执行报错,求排查解决

VSS转VSSX PowerShell脚本报错修复

原脚本存在语法错误导致解析失败,以下是具体问题和修正方案:

原脚本的错误点

  • $directoryToUpdate='C:\office\Stencils\*':路径末尾多余*,后续拼接会生成无效路径,应改为C:\office\Stencils
  • New-Object -comVisio.Application:参数格式错误,-com与Visio.Application间缺少空格,正确写法为-com Visio.Application
  • get-childitem "$directoryToUpdate\*.vss" -Recurse":末尾多了一个双引号,导致括号不匹配;同时路径拼接逻辑冗余,建议改用-Filter参数指定.vss文件类型
  • [io.path]::ChangeExtension($vssFile,'.vssx'):传入的是FileInfo对象,ChangeExtension方法需要字符串格式的文件路径,应改为$vssFile.FullName
  • 变量大小写不一致:Write-Host "Working on $vssfile"中的$vssfile与循环变量$vssFile大小写不同,虽PowerShell默认不区分大小写,但统一写法可避免潜在问题

修正后的完整脚本

$directoryToUpdate = 'C:\office\Stencils'
$visio = New-Object -com Visio.Application
foreach ($vssFile in (Get-ChildItem -Path $directoryToUpdate -Filter *.vss -Recurse)) {
    Write-Host "Working on $vssFile"
    $doc = $visio.Documents.Open($vssFile.FullName)
    $vssxFileName = [io.path]::ChangeExtension($vssFile.FullName, '.vssx')
    $doc.SaveAs($vssxFileName)
    $doc.Close()
}

补充说明

  • 执行脚本前需确保已安装Visio,且PowerShell具备足够文件访问权限(必要时以管理员身份运行)
  • 转换完成后可手动验证部分VSSX文件,确认是否能正常打开

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:05:23