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

Windows下PowerShell调用pnpm via Start-Process报错:%1不是有效Win32应用

解决Windows PowerShell中Start-Process调用pnpm报错的问题

问题原因

Windows下pnpm默认以.cmd脚本形式存在,而非原生EXE程序。Start-Process的-FilePath参数直接传入pnpm时,无法正确识别该脚本类型,因此抛出"%1 is not a valid Win32 application"错误。而npm在Windows下有对应的可执行文件,系统能正确解析;Mac的Shell直接支持脚本文件的调用,所以不会出现问题。

解决方案

方法1:指定pnpm的.cmd后缀

修改脚本中的$Tool变量为pnpm.cmd,让Start-Process能正确识别可执行脚本:

$Tool="pnpm.cmd"
$ArgumentList="run", "build"
$processResult = Start-Process `
        -FilePath $Tool `
        -ArgumentList $ArgumentList `
        -NoNewWindow `
        -PassThru `
        -Wait

方法2:直接通过PowerShell调用pnpm(推荐)

跳过Start-Process,直接用PowerShell的调用操作符&执行pnpm,这种方式更简洁,还能直接获取退出码:

& pnpm run build
$exitCode = $LASTEXITCODE # 捕获命令退出码

如果需要获取进程信息,可以在执行后用Get-Process查找相关进程。

方法3:通过cmd.exe间接调用

利用cmd /c来执行pnpm命令,让cmd解析pnpm的别名:

$processResult = Start-Process `
    -FilePath "cmd.exe" `
    -ArgumentList "/c", "pnpm run build" `
    -NoNewWindow `
    -PassThru `
    -Wait

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:14:50