Kode Anda harus membungkus semua jalur dalam tanda kutip ganda untuk menghilangkan spasi. Ingat cmd
menafsirkan setiap pekerjaan yang dibatasi ruang sebagai perintah baru. Kita harus keluar dari &
karena akan menjadi operator fisik dalam batch, terakhir lebih disukai menggunakan /d
pilihan saat menggunakan cd
jika Anda berasal dari huruf drive lain:
@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
Perhatikan juga, Anda tidak pernah menggunakan kata sandi di pg_dump
perintah, jadi Anda perlu mempertimbangkannya juga. Praktik terbaik adalah mengedit
%APPDATA%\postgresql\pgpass.conf
dan tambahkan
*:5432:*:username:password
untuk mengotomatiskan bagian itu dalam skrip Anda:
@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
Jika dir
tidak ada, buat "%APPDATA%\postgresql"