व्हाइटस्पेस को खत्म करने के लिए आपके कोड को सभी पथों को डबल कोट्स में लपेटना चाहिए। ध्यान रखें 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"