Это должно быть легко, но я не могу заставить его работать.
Когда я запускаю следующую команду внутри cmd, она прекрасно работает. Когда я запускаю команду внутри кода c#
, она ничего не делает (исключение также не выдается).
Вот команда, которую я использую (которая отлично работает при непосредственном использовании наcmd.exe
):
cd %ProgramFiles%\PostgreSQL\12\bin && SET PGPASSWORD=mypassword&& pg_restore.exe -U username -d dbname C:\file\to\dump\my.dump
Вот что я пытаюсь сделать в c#
(не работает):
var arg = @"cd %ProgramFiles%\PostgreSQL\12\bin && SET PGPASSWORD=mypassword&& pg_restore.exe -U username -d dbname C:\file\to\dump\my.dump";
Process.Start("cmd.exe", arg);
Я что-то упустил? Я нашел много сообщений о c#
запуске процесса, но ничего не решило мою проблему. Я также пытался запустить процесс с StartInfo
и добавил свойства, такие как Arguments
, FileName
и т. Д., Но он также не работал.
Помните, вопрос процесса. Аргументы start () не совпадают - в моем случае я не могу установить system variable (SET PGPASSWORD)
, поскольку pg_restore
не имеет аргумента пароля.