空白をなくすために、コードはすべてのパスを二重引用符で囲む必要があります。 cmd
を覚えておいてください スペースで区切られた各作業を新しいコマンドとして解釈します。 &
をエスケープする必要があります バッチで物理演算子になるため、最後に/d
を使用することをお勧めします。 cd
を使用する場合のオプション 別のドライブ文字から来た場合:
@echo off
SET "PGPASSWORD=%Ech0-5910^&123"
set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
cd /d "%root%"
pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" testdb
また、pg_dump
でパスワードを使用しないことにも注意してください。 コマンドなので、それも考慮する必要があります。ベストプラクティスは編集することです
%APPDATA%\postgresql\pgpass.conf
を追加します
*:5432:*:username:password
スクリプトのその部分を自動化するには:
@echo off
echo *:5432:*:postgres:%Ech0-5910^&123>""%APPDATA%\postgresql\pgpass.conf"
set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
cd /d "%root%"
pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" testdb
dir
の場合 存在しない場合は、作成します"%APPDATA%\postgresql"