0
我使用這個批處理文件來備份我的數據庫:爲什麼我會得到pg_dump:備份批處理文件中的命令行參數錯誤太多?
@echo off
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
for /f "tokens=1-2 delims=/:" %%a in ('time /t') do (
set time=%%a%%b
)
set datestr=%month%_%day%_%year%_%time%
echo datestr is %datestr%
set BACKUP_FILE=C:\database_files\db_backup\DailyBackup_%datestr%.backup
echo backup file name is %BACKUP_FILE%
SET PGPASSFILE=C:\Users\Administrator\AppData\Roaming\postgresql\pgpass.conf
echo on
"C:\Program Files\PostgreSQL\9.0\bin\pg_dump" -i -h localhost -p 5432 -U postgres -F c -b -v -f %BACKUP_FILE% databasename
當我運行它,我得到的標題提到的錯誤。如果我刪除了我設置文件名稱以包含時間的部分,它就可以工作。
文件名中是否有空格?嘗試引用你的參數。 – Tibo
@Tibo你是什麼意思報價參數? –
在你的參數中使用引號,例如:''pg_dump -p foo「%BACKUP_FILE%」'否則shell會擴展你的文件名(使用它的空格)和''pg_dump''會看到多個參數。 – Tibo