【发布时间】:2018-02-09 13:23:16
【问题描述】:
我试图在我的 C# 项目中创建一个备份触发器,但我一直在执行命令。我可以手动执行此操作,并且与此处相同,但不知何故,当我尝试在 C# 项目中实现它时,我无法运行它(可以但它显示“访问被拒绝”)。
string cmdKomanda = @"/k cd C:\Program Files\PostgreSQL\9.6\bin" + Environment.CurrentDirectory+ @"pg_dump -h 192.168.130.240 -p 5433 -U postgres -F c postgres > ""C:\Users\Marko Petričević\Documents\Radni_sati_Backup\radni_sati_15_01_18"" " + Environment.CurrentDirectory + @"password";
ProcessStartInfo procStartInfo =new ProcessStartInfo("CMD.exe", cmdKomanda);
Process.Start(procStartInfo);
基本上,首先我必须到 PostgreSQL bin 文件夹从那里运行 pg_dumb。运行该命令后,需要密码。
cmdKomanda 的运行时值为:
"/k cd C:\\Program Files\\PostgreSQL\\9.6\\binC:\\Users\\Marko Petričević\\Desktop\\TortoiseSVN\\Radni_sati-Dev\\Radni_sati\\bin\\Debugpg_dump -h 192.168.130.240 -p 5433 -U postgres -F c postgres > C:\\\\Users\\\\Marko Petričević\\\\Documents\\\\Radni_sati_Backup\\\\radni_sati_15_01_18 C:\\Users\\Marko Petričević\\Desktop\\TortoiseSVN\\Radni_sati-Dev\\Radni_sati\\bin\\Debugpassword"
【问题讨论】:
-
cmdKomanda在运行时的值是多少?Environment.CurrentDirectory不是你想要的。 -
这可能不起作用的原因有很多,您至少需要向我们展示您遇到的错误。
-
@SebastianL 没有错误。只是“拒绝访问”。并返回项目所在的路径。
-
@MarkoPetričević 你试过以管理员身份运行它吗?
-
我无法运行它。当你尝试时会发生什么?
标签: c# postgresql cmd process