Передача входных данных в командную строку в командном файле

Я параллельно запускаю симуляции с использованием mpich2. У меня довольно строгая защита на моей рабочей станции, и я должен регистрироваться, используя новый пароль каждый раз, когда я запускаю симуляцию. Я должен ввести:

mpiexec -register

который затем запрашивает у меня имя пользователя, а затем запрашивает пароль. К сожалению, кажется, что нет способа передать пользователя / pass в mpiexec в одной строке, например

mpiexec -register user:pass

не работает.

Я пытаюсь подготовить пакетный файл, который может автоматически передавать имя пользователя и пароль в приглашения mpiexec, но я не могу заставить его работать. Я пробовал разные вещи, такие как timeout /t 5 но это не работает

Может кто-нибудь сказать мне, как передать эти входные данные программным приглашениям mpiexec в командном файле?

Спасибо!

РЕДАКТИРОВАТЬ: Я думаю, что я все ближе. я пробовал

(
echo username 
echo password 
echo password 
) | mpiexec -register

который, кажется, передает ввод имени пользователя и пароля в приглашения mpiexec. Программа все еще висит на следующем шаге - не уверен, если это проблема с тем, как я прохожу эти или нет.

1 ответ

Решение

Вы можете перенаправить или передать mpiexec,
С перенаправлением это становится немного неприятным для ввода имени пользователя / пароля, так как часто есть нежелательные (и невидимые) пробелы в конце строки.

(
echo user
echo pwd
) | more > fetch.txt

Создает в fetch.txt

пользователь<space>
PWD<space>

Если вы хотите подавить пробелы, используйте перенаправление файлов

(
echo user
echo pwd
) > file.tmp
< file.tmp mpiexec -register

В обоих случаях (перенаправление или канал) вам необходимо обслуживать все входные данные для программы, а не только имя пользователя и пароль.
Вы не можете больше вводить данные с клавиатуры.

Другие вопросы по тегам