Din kode skal indpakke alle stier i dobbelte anførselstegn for at eliminere mellemrum. Husk cmd
fortolker hvert rumafgrænset værk som en ny kommando. Vi er nødt til at undslippe &
da det vil blive en fysisk operatør i batch, til sidst foretrækkes det at bruge /d
mulighed, når du bruger cd
hvis du kommer fra et andet drevbogstav:
@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
Bemærk også, at du aldrig bruger adgangskoden i din pg_dump
kommando, så det skal du også overveje. Bedste praksis er at redigere
%APPDATA%\postgresql\pgpass.conf
og tilføje
*:5432:*:username:password
for at automatisere den del i dit script:
@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
Hvis dir
eksisterer ikke, opret den "%APPDATA%\postgresql"