【问题标题】:psql "more is not recognized" errorpsql“更多无法识别”错误
【发布时间】:2021-07-14 01:19:53
【问题描述】:

我在 Windows 8.1(64 位)上使用 postgresql (9.4) 交互式终端 psql。在安装和创建数据库和表并将数据插入一行后,我想查看数据。

但是,当我输入时

SELECT * FROM my_table;

我收到一个错误:

'more' 不是内部或外部命令、可运行程序或批处理文件。

添加“C:\Windows\System32;”后到我的路径变量,在 Powershell 中有更多工作(例如更多 hello.txt),但在 psql 中仍然没有。

我还需要做什么才能使 SELECT 语句正常工作?

【问题讨论】:

  • 在系统路径变量中设置 C:\Windows\System32 有效。但是,您可能必须重新启动计算机才能使更新生效。至少,这是我必须做的。

标签: windows postgresql psql


【解决方案1】:

这听起来像您启动 psql 的方式,C:\Windows\System32 实际上不在结果环境中的 PATH 上。

您可以下载 Process Explorer 之类的内容,并使用它来查看正在运行的 psql 进程的环境变量,并查看该路径是否存在。

如果没有,您可以确保在调用 psql 的 shell 中设置它,将其设置为系统环境变量,在 cmd中相应地设置 PATH > 文件,然后调用 psql 等。

set PATH=%PATH%;C:\Windows\System32

【讨论】:

  • 你说得对,我只是为当前用户而不是系统更新了 PATH 变量,所以当我在另一个用户下启动 psql 时,它没有看到 C:\Windows\ System32 语句。尽管在 Windows 中搜索“系统环境变量”,但仍有两个框 - 一个用于本地用户,一个用于系统。
【解决方案2】:

通常由于未设置 PATH 环境变量而发生此错误 在您的系统中正确&它无法从

找到更多命令

C:\Windows\System32.

解决办法是:

(右键单击)我的电脑 -> 属性 -> 高级选项卡 -> 环境变量 ->

然后在系统变量中设置PATH

将这些添加到 PATH 变量中:

  • %SystemRoot%;
  • %SystemRoot%\system32;%PROGRAMFILES%\PostgreSQL\9.4\bin

希望这能解决您的问题。

【讨论】:

    【解决方案3】:

    保持下面包含在create_PG_script.bat文件中

    ///////////////////////////////////////////
    @echo off
    setlocal
    set PATH=%PATH%;C:\Windows\System32
    set PGPASSWORD=yourpasswordcomeshere
    "C:\PostgreSQL\9.5\bin\psql.exe" -h localhost -U postgres -d postgres -p 5432 -f D:/PG_Script/select_query.sql"
    pause
    endlocal
    //////////////////////////////////////////////
    

    还创建单独的select_query.sql 文件保持相同的位置

    //////////////////////////////////////////////
    select * from company;`enter code here`
    //////////////////////////////////////////////
    

    运行create_PG_script.bat 文件

    【讨论】:

      【解决方案4】:

      如果编辑和设置环境变量不起作用,原因之一可能是您的终端可能无法显示输出。所以请在提示符中输入“\pset pager off”来关闭寻呼机,然后重试。

      【讨论】:

        【解决方案5】:

        我们需要设置路径:-

        “更多”存在于 C:\Windows\System32 中。所以,请在 PATH 中设置路径 环境变量。然后尝试。 我的电脑(右键单击)-> 属性-> 然后转到高级选项卡-> 环境变量 -> 设置路径。

        【讨论】:

          【解决方案6】:

          打开SQL shell并输入

          \pset pager off

          【讨论】:

            【解决方案7】:

            在PC设置中设置psql的路径(右键)->环境变量->系统变量->路径(点击编辑)->" C:\Program Files\Postgresql\12\bin; C:\Program Files\Postgresql\12\lib" 现在在终端上再检查一次

            不过,在 c>windows>system32> 上检查会出现此问题

            希望对你有帮助。

            【讨论】:

              【解决方案8】:

              做两件事。

              1. 从我的电脑设置路径(右键)->属性->高级系统设置->环境变量->路径->编辑->添加(C:\Program Files\PostgreSQL\YourVersion\bin)。

              2. 如果这不起作用,则禁用寻呼机。

                \pset 寻呼机关闭

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2015-04-29
                • 1970-01-01
                • 2013-03-29
                • 1970-01-01
                • 2013-12-13
                • 2013-07-24
                • 1970-01-01
                相关资源
                最近更新 更多