stdin.write () to cmd, похоже, не работает.Любые решения о том, как передать строки в командной строке? - PullRequest
0 голосов
/ 11 мая 2018

Я посмотрел много ответов на stdin.write() вопросов, и ни один не помог. Я пытаюсь, чтобы мой код изменил пароль для учетной записи через cmd, но для этого требуется, чтобы программа дважды вводила пароль после запуска mt =subprocess.Popen(["net","users", username, "*"], stdout = subprocess.PIPE,stdin = subprocess.PIPE, shell=True).

pswd = 'password'
pswd = pswd.encode() + b'\n'
mt =subprocess.Popen(["net","users", username, "*"], stdout = 
subprocess.PIPE,stdin = subprocess.PIPE, shell=True)

mt.stdin.flush()
mt.stdin.write(pswd)
mt.stdin.flush()
mt.stdin.write(pswd)

(out, er) = mt.communicate()

st = str(out)

print(st)

Это не вся программа, но здесь команды stdin.write() не будут работать. Я также попробовал mt.communicate(pswd), но это тоже не работает. Выход:

b'Type a password for the user: Retype the password to confirm: \r\n\r\n'
>>> 

В основном ... Мне просто нужен способ передать строку в cmd.

...