You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Bat文件执行pg_dump/pg_restore报错的解决咨询

问题解决方法

错误根源是路径包含空格时未加引号,Windows批处理会将空格前的部分识别为单独命令,导致报错。以下是修正后的脚本及关键说明:

修正后的Bat脚本

@echo off
:: 切换目录时给带空格的路径加双引号
cd "C:\Program Files\pgAdmin 4\v6\runtime"

:: start命令需添加空标题,避免路径被误判为窗口标题
start "" pg_dump.exe --file "C:\Users\ADMINI~1\Desktop\dialpad.sql" --host "host1" --port "5432" --username "warehouse" --no-password --verbose --format=c --blobs --schema "dialpad" "pangea_warehouse_production"

SET "PGPASSWORD=xxxxxxxxxxxxxxx"

start "" psql --host=host2 --port=5432 --dbname=pangea_warehouse_production --username=warehouse --command="DROP SCHEMA IF EXISTS dialpad CASCADE;CREATE SCHEMA IF NOT EXISTS dialpad AUTHORIZATION warehouse;GRANT USAGE ON SCHEMA dialpad TO reporting;GRANT ALL ON SCHEMA dialpad TO warehouse;"

start "" pg_restore.exe --host "host2" --port "5432" --username "warehouse" --dbname "pangea_warehouse_production" --verbose --schema "dialpad" "C:\Users\ADMINI~1\Desktop\dialpad.sql"

关键修正点

  • cd命令加引号:带空格的目录路径必须用双引号包裹,否则批处理会拆分路径为多个无效命令。
  • start命令添加空标题:start的语法为start ["窗口标题"] 命令,如果直接跟带空格的程序路径,会被误判为窗口标题。添加""作为空标题,确保后续内容被识别为要执行的命令。
  • 保留变量设置的引号:原SET "PGPASSWORD=xxx"的写法正确,能避免密码含特殊字符时出现解析错误。

内容的提问来源于stack exchange,提问作者Yang L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:05:11