Я использую командный файл для запуска определенной операции в своем приложении. Команда, которую я использую, не принимает пароль как параметр, а запрашивает его во время работы. Это мешает автоматизировать этот скрипт. Я хотел бы знать, как я могу принимать пароль в качестве параметра и предоставлять приложение, когда оно запрашивает.Как использовать параметр командной строки для подачи ввода в следующей строке (пакетный файл)
ответ
ВЕ вам прокомментирую Johannes' answer, вы должны изменить свой призыв pg_dump
к чему-то вроде этого:
echo %3|pg_dump -h %1 -U %2 %4 > %5
Проблема заключается в том, что pg_dump не позволяет передать в пароле с помощью STDIN. Это означает, что это решение не будет работать здесь.
Но, как вы можете прочитать в документах here и here, существует (небезопасный) способ предоставления пароля через переменную окружения PGPASSWORD
.
Так просто изменить ваш пакетный файл, как это:
...
set PGPASSWORD=%3
pg_dump -h %1 -U %2 %4 > %5
...
Спасибо, это мое мгновенное требование –
+1 и hooray для странного поведения: / – Joey
Зависит от «команды» - какая команда, и как он запрашивает у пользователя ввода пароля? Читает из Stdin, показывает диалог? –
Я использую команду pg_dump postGre SQL –