Передача входных данных в командную строку в командном файле
Я параллельно запускаю симуляции с использованием 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
В обоих случаях (перенаправление или канал) вам необходимо обслуживать все входные данные для программы, а не только имя пользователя и пароль.
Вы не можете больше вводить данные с клавиатуры.