Golang二进制文件仅能在PowerShell运行,CMD执行报系统错误67
解决CMD运行Go二进制文件出现系统错误67的问题
以下是几种常见的排查方向和解决方法:
- 路径含空格未加引号:如果你的二进制文件路径包含空格(比如
C:\My Go Apps\demo.exe),CMD会把空格后的部分当成参数,导致解析错误。直接用双引号包裹完整路径运行即可,比如"C:\My Go Apps\demo.exe"。 - 环境变量不一致:IDEA内置的PowerShell可能自动加载了Go相关的环境变量(比如
GOPATH、二进制文件所在的PATH路径),但CMD的环境变量没同步。可以在CMD里执行echo %PATH%和echo %GOPATH%,对比PowerShell里的$env:PATH和$env:GOPATH,把缺失的路径临时添加到CMD(用set PATH=%PATH%;[你的二进制文件所在目录]),或者直接修改系统环境变量永久生效。 - 当前工作目录不匹配:如果你的Go程序需要读取当前目录下的配置文件或资源,CMD的默认工作目录和IDEA中PowerShell的工作目录可能不一样,导致程序找不到文件触发错误。先在CMD里用
cd命令切换到二进制文件所在的目录,再运行程序试试。 - 权限差异:如果IDEA是用管理员权限启动的,而CMD是普通权限运行,可能导致程序无法访问某些系统资源。右键CMD选择“以管理员身份运行”,再执行二进制文件看看。
- 依赖DLL路径问题:少数情况下,Go程序如果依赖了第三方Windows动态链接库(DLL),CMD的环境变量里没包含这些DLL的路径,而PowerShell里有。可以用
dumpbin /dependents [你的二进制文件].exe(需要安装Visual Studio的工具集)查看依赖的DLL,把DLL所在目录添加到CMD的PATH中。
内容的提问来源于stack exchange,提问作者jksevend
相关产品推荐
相关产品推荐

