win32+popen4
Thomas Heller
theller at python.net
Fri Mar 1 10:33:10 EST 2002
More information about the Python-list mailing list
Fri Mar 1 10:33:10 EST 2002
- Previous message (by thread): win32+popen4
- Next message (by thread): win32+popen4
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Robin Becker" <robin at jessikat.fsnet.co.uk> wrote in message news:PtFyMdAeY5f8EwjI at jessikat.demon.co.uk... > after investigation it seems that module nt is using > cmd.exe /c string > > to run programs and I can't find any way to quote things in the string. > A typically rubbish M$-ism. > -- > Robin Becker On win2k it seems to be even documented (for the first time?): C:\sf\python>type "\Program Files\test.py" import sys print sys.argv C:\sf\python>cmd /c ""\Program Files\test.py" "1 2 3" 4 5 "6"" ['C:\\Program Files\\test.py', '1 2 3', '4', '5', '6'] and here are the rules: C:\sf\python>cmd /? Starts a new instance of the Windows 2000 command interpreter CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string] /C Carries out the command specified by string and then terminates /K Carries out the command specified by string but remains /S Modifies the treatment of string after /C or /K (see below) /Q Turns echo off /D Disable execution of AutoRun commands from registry (see below) /A Causes the output of internal commands to a pipe or file to be ANSI /U Causes the output of internal commands to a pipe or file to be Unicode /T:fg Sets the foreground/background colors (see COLOR /? for more info) /E:ON Enable command extensions (see below) /E:OFF Disable command extensions (see below) /F:ON Enable file and directory name completion characters (see below) /F:OFF Disable file and directory name completion characters (see below) /V:ON Enable delayed environment variable expansion using c as the delimiter. For example, /V:ON would allow !var! to expand the variable var at execution time. The var syntax expands variables at input time, which is quite a different thing when inside of a FOR loop. /V:OFF Disable delayed environment expansion. Note that multiple commands separated by the command separator '&&' are accepted for string if surrounded by quotes. Also, for compatibility reasons, /X is the same as /E:ON, /Y is the same as /E:OFF and /R is the same as /C. Any other switches are ignored. If /C or /K is specified, then the remainder of the command line after the switch is processed as a command line, where the following logic is used to process quote (") characters: 1. If all of the following conditions are met, then quote characters on the command line are preserved: - no /S switch - exactly two quote characters - no special characters between the two quote characters, where special is one of: &<>()@^| - there are one or more whitespace characters between the the two quote characters - the string between the two quote characters is the name of an executable file. 2. Otherwise, old behavior is to see if the first character is a quote character and if so, strip the leading character and remove the last quote character on the command line, preserving any text after the last quote character.
- Previous message (by thread): win32+popen4
- Next message (by thread): win32+popen4
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list