4

我在 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.
4

3 回答 3

2

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不带参数的 a,psql 不会显示当前目录。相反,它会更改为根 C:\ 目录(大概类似于 linux cd 命令更改为主目录。)因此您需要发出不同的命令来查看当前目录。

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

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

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

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

于 2019-11-07T08:20:21.910 回答
0

你可以试试

postgres=# \cd 'c:\\Program Files\\PostgreSQL\\11\\bin'
于 2022-02-10T14:24:28.370 回答
-1

我正在使用 Windows 顺便说一句

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

这是你需要做的

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

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

如果你需要解决这个问题去这个页面..→点击我

于 2020-12-16T08:24:34.793 回答