[Buildbot-devel] win32 create process info
Cory Dodt
corydodt at twistedmatrix.com
Tue Apr 26 21:06:58 UTC 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Brian Warner wrote:
| I'm assuming that os.environ['COMSPEC'] is generally equal to "cmd.exe".
Generally. On win9x it's "command.com".
| If I
| change this code to:
|
| if type(self.command) in types.StringTypes:
| if runtime.platformType == 'win32':
| argv = [os.environ['COMSPEC'], '/c', self.command]
| else:
| # for posix, use /bin/sh. for other non-posix, well, doesn't
| # hurt to try
| argv = ['/bin/sh', '-c', self.command]
| else:
| if runtime.platformType == 'win32':
| argv = [os.environ['COMSPEC'], '/c'] + list(self.command)
| else:
| argv = self.command
|
| then will it work for a command that has spaces in it? The /bin/sh route
| re-parses the argv elements and splits on spaces.. does cmd.exe do the same?
~From very rudimentary experimentation it looks like both of these do the same
thing:
cmd /c "dir c:\windows"
cmd /c dir c:\windows
However, this (executed from bash) does something completely different:
~ cory ~% cmd /c 'dir "c:\documents and settings"'
~ The filename, directory name, or volume label syntax is incorrect.
It looks like it's tokenizing this command line without removing the quotes.
Better use shlex.split() on self.command.
C
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCbq1y3A5SrXAiHQcRAnSzAJ4rNFcqXXvnKpeN1kj0CHpp79DUVQCfYzxh
HB1GDqfY2y6rm+4UkD9b2O4=
=6zEQ
-----END PGP SIGNATURE-----
More information about the devel
mailing list