MS-DOS: Recoger retorno de error de subprograma python
Necesito ayuda con el siguiente código que he programado. Se compone de dos partes. Un cmd, que realiza unas acciones previas y llama a un programa .py (python) el cual realiza una serie de chequeos y en base a eso devuelve un código de retorno, que debe recoger el cmd.
CMD
================================
set errorlevel=0
e:
dir | find "free" > salida.txt
RSH 10.40.78.122 -l asradmin .control | find "free" > salida2.txt
python.exe E:\scripts\FS.py
Echo %errorlevel%
Python
================================
tamano=open("salida.txt")
libre="".join(tamano.readline().split(")")[1].split("bytes")[0].strip().split(","))
tamano.close()
limite=40000000000
if int(libre)<limite:
libre=int(libre)/1000000000
print " - Peligro: No existe espacio en disco suficiente: " + str(libre) + "GB"
sys.exit(1)
Según entiendo, poniendo limite muy grande hago que pase por el if (y pasa, lo he comprobado porque pinta el mensaje de peligro), con lo que la salida debería ser 1 y cuando pintara el cmd el valor de errorlevel debería pintar 1 pero en cambio pinta 0.
CMD
================================
set errorlevel=0
e:
dir | find "free" > salida.txt
RSH 10.40.78.122 -l asradmin .control | find "free" > salida2.txt
python.exe E:\scripts\FS.py
Echo %errorlevel%
Python
================================
tamano=open("salida.txt")
libre="".join(tamano.readline().split(")")[1].split("bytes")[0].strip().split(","))
tamano.close()
limite=40000000000
if int(libre)<limite:
libre=int(libre)/1000000000
print " - Peligro: No existe espacio en disco suficiente: " + str(libre) + "GB"
sys.exit(1)
Según entiendo, poniendo limite muy grande hago que pase por el if (y pasa, lo he comprobado porque pinta el mensaje de peligro), con lo que la salida debería ser 1 y cuando pintara el cmd el valor de errorlevel debería pintar 1 pero en cambio pinta 0.
1 Respuesta
Respuesta de gggirald
1