Postgresql pgAgent计划的作业在Windows上失败

Postgresql pgAgent计划的作业在Windows上失败,postgresql,batch-file,job-scheduling,pgagent,Postgresql,Batch File,Job Scheduling,Pgagent,我正试图通过pgAdmin在pgAgent中的特定时间使用批处理文件路径设置步骤。但当我运行时,它失败了,在步骤统计中,我得到了这个输出 C:\Windows\system32>C:\postgresql\run.bat “psql”未被识别为内部或外部命令, 可操作的程序或批处理文件 详情: 在run.bat中,我只有两条语句 @echo off psql -h localhost -p 5433 -U postgres -d test -a -f "test.sql" 我在系统路径变量中有

我正试图通过pgAdmin在pgAgent中的特定时间使用批处理文件路径设置步骤。但当我运行时,它失败了,在步骤统计中,我得到了这个输出

C:\Windows\system32>C:\postgresql\run.bat “psql”未被识别为内部或外部命令, 可操作的程序或批处理文件

详情:

在run.bat中,我只有两条语句

@echo off
psql -h localhost -p 5433 -U postgres -d test -a -f "test.sql"
我在系统路径变量中有psql,可以在cmd中访问它。当我手动运行bat文件时,它正在执行,不会失败。但当我在pgAgent作业中给出批处理文件路径C:\postgresql\run.bat时,它在统计中给出了该错误

我的配置有什么问题吗?为什么它总是指向C:\Windows\system32>

编辑:

我的run.bat文件

My Archive.sql

比如说,

D:\pgAgent\u作业

是psql所在的路径

D:\pgAgent\u jobs\scripts\test.sql

是放置my test.sql的路径

D:\pgAgent\u jobs\scripts\psqlss.bat

是要执行test.sql的bat文件

所以我的bat文件如下所示

 @echo off

cd /D D:\\pgAgent_jobs

psql -h localhost -p 5432 -U postgres -d db_name -a -f "D:\pgAgent_jobs\scripts\test.sql"

注意:我的pg_hba.conf配置了对所有主机的信任,这就是为什么我不在上面的psql命令中传递任何密码的原因

您需要给出psql在运行中的位置路径。bat显示psql的绝对路径在我的示例中是C:\Program Files\PostgreSQL\9.3\bin\psql。exe@WingedPanther我试过你的建议,现在我看到它的状态是运行的,它没有更新表记录,可能是什么问题?可能是在test.sql中!您的bat文件执行是否正确???@wingedparter当我运行bat文件时,我看到表中的记录发生了变化。我根据您的建议更新了我的问题,但现在它处于运行状态,但没有更新表记录,你能帮我找出问题所在吗?@DyapaSrikanth你确定你的更新正在正确运行吗?建议>在run.bat最后一行中添加一个额外的行暂停,然后手动运行bat文件只要双击你能看到你在控制台的.sql中写的东西吗?最后在替换pgsql之后,.sql的确切位置,并且我使用trust修改了pg_hba.conf中的方法,因为我的pgpass.conf包含普通密码。尽管查询执行得很好,但作业状态显示失败,这可能是pgAgent中的错误。
 @ECHO OFF

SET LBSDatabaseName=Test
SET dbHost=localhost 
SET dbPort=5434 
SET dbUser=postgres 
SET logFile=DbInstall.log 
SET sqlFolder="D:\SOURCECODE\archivescripts"        

"C:\Program Files (x86)\PostgreSQL\9.3\bin\psql.exe" -h "%dbHost%" -p "%dbPort%" -d "%LBSDatabaseName%" -U "%dbUser%" -L "%logFile%" -q -f "%sqlFolder%\Archive.sql"
update "Archive".emp set "FirstName"='Srikanth Dyapa';
 @echo off

cd /D D:\\pgAgent_jobs

psql -h localhost -p 5432 -U postgres -d db_name -a -f "D:\pgAgent_jobs\scripts\test.sql"