2010-05-20 1 views
2

Я использую командный файл для запуска определенной операции в своем приложении. Команда, которую я использую, не принимает пароль как параметр, а запрашивает его во время работы. Это мешает автоматизировать этот скрипт. Я хотел бы знать, как я могу принимать пароль в качестве параметра и предоставлять приложение, когда оно запрашивает.Как использовать параметр командной строки для подачи ввода в следующей строке (пакетный файл)

+0

Зависит от «команды» - какая команда, и как он запрашивает у пользователя ввода пароля? Читает из Stdin, показывает диалог? –

+0

Я использую команду pg_dump postGre SQL –

ответ

6

ВЕ вам прокомментирую 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 
... 
+0

Спасибо, это мое мгновенное требование –

+0

+1 и hooray для странного поведения: / – Joey