Mã của bạn nên đặt tất cả các đường dẫn trong dấu ngoặc kép để loại bỏ khoảng trắng. Hãy ghi nhớ cmd
diễn giải mỗi công việc được phân cách bằng dấu cách như một lệnh mới. Chúng ta cần thoát khỏi &
vì nó sẽ trở thành toán tử vật lý theo lô, cuối cùng nó được ưu tiên sử dụng /d
tùy chọn khi sử dụng cd
trong trường hợp bạn đến từ một ký tự ổ đĩa khác:
@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
Cũng lưu ý, bạn không bao giờ sử dụng mật khẩu trong pg_dump
của mình lệnh, vì vậy bạn cũng cần phải xem xét điều đó. Thực tiễn tốt nhất là chỉnh sửa
%APPDATA%\postgresql\pgpass.conf
và thêm
*:5432:*:username:password
để tự động hóa phần đó trong tập lệnh của bạn:
@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
Nếu dir
không tồn tại, hãy tạo nó "%APPDATA%\postgresql"