无法在windows 10上的psql中更改目录,PostgreSQL 11

xqnpmsa8  于 2023-05-01  发布在  Windows
关注(0)|答案(4)|浏览(192)

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

yizd12fk1#

有点晚了,但这里有一些提示,为其他人谁绊倒在这里。对于这些目录更改和驱动器更改任务,有两个相关的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命令更改为home目录。)所以你需要发出一个不同的命令来查看当前目录。

  1. psql可以调用一个shell命令,使用\! <command>的形式,所以在linux中你可以使用\! pwd来查看当前的工作目录。但是,Windows没有pwd命令。你可以使用\! cd
    这很容易让人感到困惑,并且很容易在您想要的时候意外地使用\cd(这会不必要地更改目录)!cd,特别是如果你在Windows和Linux之间跳跃。因此在Windows上,您可能需要创建一个批处理文件来实现pwd。
    1.作为进一步的混淆点,您可能会想到使用以下内容:\! cd \dira\dirb,但是,由于某种原因,使用参数(正斜杠或反斜杠)运行\! cd似乎不起作用。
    1.另一种选择是,如果您只需要更改一次特定的当前目录,您可以在运行启动psql的脚本之前先cd。也就是说,不要使用PostgreSQL安装在开始菜单上的“SQL Shell(psql)”命令。相反,请查看该命令的属性,记下脚本的路径,并仅在cd'艾德到所需目录后才在命令窗口中使用它。
svdrlsy4

svdrlsy42#

你可以试试

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

o4tp2gmn3#

我有这个问题,当我运行它作为管理员从命令行,我打开它作为一个普通用户,它开始工作

yzuktlbb

yzuktlbb4#

我用的是windows顺便说一句
在运行psql之前,你必须更改目录现在,你可能会想,但是当我打开psql shell时,它已经在运行psql了,这是因为你在psql shell中打开了它,不要这样做
你需要做的是
1.打开命令提示符
1.使用cd更改目录
1.然后运行psql命令
如果你得到'psql不是命令'错误,那是因为psql路径不在你的环境变量
如果需要修复,请转到此页面。.→ Click me

相关问题