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.

よろしくお願いします

更新:現在のディレクトリを確認する方法を考え出しました\! 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には少し遅れましたが、ここでつまずいた他の人のためのヒントをいくつか紹介します. これらのディレクトリ変更およびドライブ変更タスクに関連する 2 つの 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 は、次の形式を使用してシェル コマンドを呼び出すことができます。\! <command> したがって、Linux では、\! pwd現在の作業ディレクトリを表示するために使用できます。ただし、Windows には pwd コマンドがありません。しかし、あなたは使うことができます\! cd

これは混乱を招く傾向があり、意図したときに誤って \cd (不要にディレクトリを変更する) を使用する傾向があります。cd、特に Windows と Linux の間を行き来する場合。したがって、Windows では、pwd を実装するバッチ ファイルを作成する必要がある場合があります。

  1. さらに混乱を招く点として、次のようなものを使用することを考えるかもしれません: \! cd \dira\dirbただし、何らかの理由で、\! cd引数 (スラッシュまたはバックスラッシュ) を指定して実行すると機能しないようです。

  2. 別の方法として、特定の現在のディレクトリに 1 回だけ変更する必要がある場合は、psql を起動するスクリプトを実行する前に cd を実行できます。つまり、Postgresql がスタート メニューにインストールする「SQL シェル (psql)」コマンドを使用しないでください。代わりに、そのコマンドのプロパティを見て、スクリプトへのパスをメモし、目的のディレクトリに cd した後でのみ、コマンド ウィンドウでそれを使用します。

于 2019-11-07T08:20:21.910 に答える
0

あなたは試すことができます

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