Я пытаюсь открыть окно командной строки, а затем, как только команда будет выполнена, преобразовать ее вывод в переменную. Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую приведенную ниже команду, я получаю пустую строку: self.srcEntry.get()
и self.dstEntry.get()
- исходные и целевые папки для robocopy.
output = Popen(["start", "cmd", "/K", "RoboCopy.exe", f"{self.srcEntry.get()}", f"{self.dstEntry.get()}", "*.*", "/E", "/Z", "/MT:8"], stdout=PIPE, stdin=PIPE, shell=True)
print(output.communicate()[0].decode('utf-8'))
Также программа делает паузу пока командное окно не будет закрыто (у меня нет проблем с этим). Однако, когда я использую:
output = Popen(["RoboCopy.exe", f"{self.srcEntry.get()}", f"{self.dstEntry.get()}", "*.*", "/E", "/Z", "/MT:8"], stdout=PIPE, stdin=PIPE, shell=True)
print(output.communicate()[0].decode('utf-8'))
, я могу получить вывод, но не командное окно. Это проблема, как будто у меня есть большой файл для передачи, и я не буду знать, как далеко он зашёл, пока не закончил.