subprocess returncode windows

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Wed Dec 17 00:11:12 CET 2008


En Tue, 16 Dec 2008 17:21:35 -0200, Andrew <andrew.replogle at gmail.com>  
escribió:
> On Dec 16, 12:50 pm, Christian Heimes <li... at cheimes.de> wrote:
>> Andrew schrieb:
>>
>> > I'm running into a strange situation with getting incorrect
>> > returncodes / exit status from python subprocess.call. I'm using a
>> > python script (runtime 2.6.1 on windows) to automate the deploy of
>> > java applications to glassfish application server. Below is an example
>
> I've removed shell=True, unfortunately, if I structure the call like:
>
> call(["c:/glassfish/bin/asadmin.bat", "list-system-properties", "--
> host
> mydomain", "--port 4848", "--user admin", "server-01"])
>
> It doesn't seem to recognize any arguments after list-system-
> properties.

Should be:

call(["c:/glassfish/bin/asadmin.bat", "list-system-properties", "--host",
"mydomain", "--port", "4848", "--user", "admin", "server-01"])

*Every* argument should be an item in the list (your way, "--port 4848"  
becomes a single argument, not two: option plus value)
(This is independent of your other issue)

> If I structure it like:
>
> call("c:/glassfish/bin/asadmin.bat "+"list-system-properties --host
> mydomain --port 4848 --user admin server-01")
>
> Then it executes correctly but still gives invalid returncode of 0
> when it fails instead of 1.

A similar example works fine for me:

C:\temp>type ret.c
#include <stdlib.h>

int main(int argc, char* argv[])
{
   return atoi(argv[1]);
}

C:\temp>ret 5

C:\temp>echo %errorlevel%
5

C:\temp>type testret.bat
ret %1

C:\temp>testret 3

C:\temp>ret 3

C:\temp>echo %errorlevel%
3

C:\temp>type testret.py
 from subprocess import call
ret = call(["testret.bat", "42"])
print "testret.bat exit code =", ret

C:\temp>python testret.py

C:\temp>ret 42
testret.bat exit code = 42

C:\temp>python -V
Python 2.6

C:\temp>ver

Microsoft Windows XP [Versión 5.1.2600]

-- 
Gabriel Genellina




More information about the Python-list mailing list