Невозможно сменить каталог в psql на Windows 10. PostgreSQL 11

Я скачал локальный PosgreSQL 11 в Windows 10.

Я пытаюсь изменить каталог в 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.

Спасибо заранее

ОБНОВЛЕНИЕ: Разобрался как проверить текущий каталог \! cd

Пытался запустить команду таким образом \! C:\>cd C:\Program Files\PostgreSQL\11\bin

Я получил:

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

Почему бы вам не сменить каталог до под управлением psql

a_horse_with_no_name 07.11.2019 09:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
1
3 295
2

Ответы 2

Немного поздно для OP, но вот несколько советов для тех, кто здесь наткнется. Для этих задач изменения каталога и диска есть две соответствующие команды psql.

  1. "Встроенная" команда \cd. Вы можете использовать это для фактического изменения каталога. Однако там, где Windows использует обратную косую черту, используйте вместо нее прямую косую черту. Кроме того, эта команда понимает букву диска, и, в отличие от компакт-диска Windows, вам не нужно добавлять здесь флаг для смены диска с помощью команды 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 может вызывать команду оболочки, используя форму \! <command> Итак, в Linux вы можете использовать \! pwd для просмотра текущего рабочего каталога. Однако в Windows нет команды pwd. Но вы можете использовать \! cd.

Это может сбить с толку и привести к случайному использованию \ cd (что нежелательно изменяет каталог), когда вы намеревались! cd, особенно если вы переключаетесь между Windows и Linux. Итак, в Windows вы можете создать командный файл для реализации pwd.

  1. В качестве дополнительной путаницы вы можете подумать об использовании чего-то вроде: \! cd \dira\dirb, однако, по какой-то причине запуск \! cd с аргументами не работает (прямая или обратная косая черта).

  2. Дополнительная альтернатива, если вам нужно только один раз перейти в конкретный текущий каталог, вы можете выполнить cd перед запуском скрипта, запускающего psql. То есть не используйте команду «SQL Shell (psql)», которую Postgresql устанавливает в меню «Пуск». Вместо этого просмотрите свойства этой команды, обратите внимание на путь к сценарию и используйте его в командном окне только после того, как вы перейдете в желаемый каталог.

Я использую окна, кстати

Вы должны сменить каталог перед запуском psql Теперь вы можете подумать, но когда я открываю оболочку psql, на ней уже запущен psql, потому что вы открыли его в оболочке psql, не делайте этого

Вот что тебе нужно сделать

  1. открыть командную строку
  2. смени свой каталог с помощью компакт-диска
  3. затем запустите команду psql

если вы получаете ошибку «psql is not a command», это потому, что путь psql не находится в вашем переменные среды

если вам нужно это исправить, перейдите на эту страницу .. → Нажми на меня

Другие вопросы по теме