2016-08-12 6 views
0

Я запускаю python на сервере Windows.Код возврата Python для команды os.system() и subprocess.call()

Я хочу код возврата для os.system, так что я могу проверить, была ли robocopy успешной или нет.

a=os.system('robocopy \\\\aucb-net-01\\d$ \\\\nasc01\\rem\\aucb-net-01 /E /MIR') 

будет "a" имеет значение? могу ли я распечатать его? как это напечатать ("a",a)

, а затем я могу решить, был ли robocopy успешным или нет.

Также как я могу выполнить выше robocopy с помощью команды subprocess.call()? А также получите код возврата.

благодарит всех за чтение моего сообщения.

+0

Что вы пробовали? Просьба привести пример кода вашей попытки. Зачем вам нужна энергия? – lloyd

ответ

0

использование os.system

import os 
cmd = os.system('robocopy \\\\aucb-net-01\\d$ \\\\nasc01\\rem\\aucb-net-01 /E /MIR') 
exit_code = os.WEXITSTATUS(cmd) 

с использованием подпроцесса

import subprocess 
exit_code = subprocess.call('robocopy \\\\aucb-net-01\\d$ \\\\nasc01\\rem\\aucb-net-01 /E /MIR', shell=True) 
+0

да, я пытаюсь это сделать. спасибо Luke_aus – Ajsh

+0

также, я хочу отправить электронную почту в скрипте python, запущенном на окнах. – Ajsh

+0

'os.WEXITSTATUS' не определен в Windows Python. Коды выхода в Windows в целом - это 32-битные значения. Если это не общий код успеха (0) или отказ (1) или код ошибки пользовательского приложения, то это может быть 16-разрядный код ошибки Windows или даже 32-разрядный код «HRESULT» или «NTSTATUS». Последнее обычно происходит только тогда, когда процесс не может инициализироваться по данной причине. – eryksun

 Смежные вопросы

  • Нет связанных вопросов^_^