空白をなくすために、コードはすべてのパスを二重引用符で囲む必要があります。 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"