【问题标题】:Cannot change directory in psql on windows 10. PostgreSQL 11无法在 Windows 10 上更改 psql 中的目录。PostgreSQL 11
【发布时间】:2019-01-08 14:10:37
【问题描述】:

我在 Windows 10 上下载了本地 PosgreSQL 11。

我尝试在命令行窗口中将 psql 中的目录更改为 c:\Program Files\PostgreSQL\11\bin>

我得到无效的命令或目录不存在

我尝试使用

postgres=# cd c:\Program Files\PostgreSQL\11\bin
Invalid command \Program. Try \? for help.
postgres-# \cd c:\Program Files\PostgreSQL\11\bin
Invalid command \Program. Try \? for help.
postgres-# \cd..
Invalid command \cd... Try \? for help.
postgres-# \cd ..
postgres-# \cd Program Files
\cd: could not change directory to "Program": No such file or directory

我什至不确定当前目录,因为 pwd 无法识别:

postgres-# \! pwd
'pwd' is not recognized as an internal or external command,
operable program or batch file.

非常感谢提前

UPADATE:想出了如何检查当前目录\! cd

试图以这种方式运行命令\! C:\>cd C:\Program Files\PostgreSQL\11\bin

我明白了:

postgres-# \! C:\>cd C:\Program Files\PostgreSQL\11\bin
Access is denied.

【问题讨论】:

  • 为什么不更改目录之前运行psql

标签: windows psql postgresql-11


【解决方案1】:

对于 OP 来说有点晚了,但这里有一些提示给那些偶然发现这里的人。 这些目录更改和驱动器更改任务有两个相关的 psql 命令。

  1. “内置”\cd 命令。您可以使用它来实际执行目录更改。但是,在 Windows 使用反斜杠的情况下,请改用正斜杠。此外,此命令可以识别驱动器号,并且与 Windows cd 不同,您不必在此处使用 cd 命令添加标志来更改驱动器。例子: \cd /dir1/dir2 \cd D:/dira/dirb <-- Drive letter \cd '/dir with spaces/other dir' <-- single quotes

问题:如何显示当前驱动器/目录?与 Windows 不同,如果您发出不带参数的 \cd,psql 不会显示当前目录。相反,它会更改为根 C:\ 目录(大概类似于 linux cd 命令更改为主目录。)因此您需要发出不同的命令来查看当前目录。

  1. psql 可以调用shell 命令,使用\! &lt;command&gt; 形式 所以在linux中你可以使用\! pwd来查看当前的工作目录。但是,Windows 没有 pwd 命令。但你可以使用\! cd

这很容易让人感到困惑,并且很容易在你想要的时候意外使用 \cd (这会不必要地更改目录)! cd,尤其是当您在 Windows 和 Linux 之间切换时。所以在 Windows 上你可能想创建一个批处理文件来实现 pwd。

  1. 作为进一步的混淆点,您可能会考虑使用以下内容: \! cd \dira\dirb 但是,由于某种原因,运行带有参数的 \! cd 似乎不起作用(正斜杠或反斜杠)。

  2. 另一种选择,如果您只需要更改到特定的当前目录一次,您可以在运行启动 psql 的脚本之前 cd。也就是说,不要使用 Postgresql 在开始菜单上安装的“SQL Shell (psql)”命令。相反,请查看该命令的属性,记下脚本的路径,然后仅在 cd 到所需目录后在命令窗口中使用它。

【讨论】:

    【解决方案2】:

    你可以试试

    postgres=# \cd 'c:\\Program Files\\PostgreSQL\\11\\bin'
    

    【讨论】:

      【解决方案3】:

      顺便说一句,我正在使用 Windows

      您必须在运行 psql 之前更改您的目录 现在,你可能会想,但是当我打开 psql shell 时它已经在运行 psql 那是因为你在 psql shell 中打开了它,不要那样做

      这就是你需要做的事情

      1. 打开命令提示符
      2. 使用 cd 更改目录
      3. 然后运行 ​​psql 命令

      如果您收到“psql 不是命令”错误,那是因为 psql 路径不在您的环境变量

      如果您需要解决此问题,请转到此页面..→ Click me

      【讨论】:

        猜你喜欢
        • 2015-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-18
        相关资源
        最近更新 更多