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

Windows 8.1下PSQL -f参数执行时终端挂起问题求助

问题原因及解决办法

可能的原因

Windows 8.1上的Git Bash伪终端(pty)与psql的标准输入/文件读取逻辑存在兼容性问题,导致-f参数或重定向操作时终端挂起;另外相对路径解析、文件编码也可能是诱因。

解决办法

  • 使用绝对路径指定SQL文件
    把相对路径换成Git Bash识别的绝对路径,比如:

    psql.exe -U <user> -f /c/Users/你的用户名/项目目录/src/sql/test.sql
    

    或者用Windows原生路径加引号:

    psql.exe -U <user> -f "C:\Users\你的用户名\项目目录\src\sql\test.sql"
    
  • 改用Windows原生终端执行命令
    直接打开CMD或PowerShell,切换到项目目录后运行命令:

    psql.exe -U <user> -f src/sql/test.sql
    

    避开Git Bash的伪终端兼容性问题。

  • 禁用Git Bash的伪终端
    右键Git Bash快捷方式,修改「目标」字段,在末尾添加--no-pty:

    "C:\Program Files\Git\git-bash.exe" --no-pty
    

    重启Git Bash后再尝试执行原命令。

  • 检查并修复SQL文件编码
    用记事本打开test.sql,选择「另存为」,编码选择「UTF-8(无BOM)」,保存后再试。部分特殊编码或BOM头会导致psql读取文件时卡住。

  • 临时替代方案:用-c参数传递文件内容
    先读取文件内容再传给psql,命令如下:

    psql.exe -U <user> -c "$(cat src/sql/test.sql)"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:30:54