What is the command line length limit?
It depends on whom you ask.
The maximum command line length for the
CreateProcess function is 32767 characters.
This limitation comes from the UNICODE_STRING
structure.
CreateProcess is the core function for creating
processes, so if you are talking directly to
Win32, then that's the only limit you have to
worry about. But if you are reaching CreateProcess
by some other means, then the path you travel
through may have other limits.
If you are using the CMD.EXE command processor,
then you are also subject to the 8192 character
command line length limit imposed by CMD.EXE.
If you are using the ShellExecute/Ex function,
then you become subject to the INTERNET_MAX_URL_LENGTH
(around 2048)
command line length limit imposed by the
ShellExecute/Ex functions.
(If you are running on Windows 95, then the limit
is only MAX_PATH.)
While I'm here, I may as well mention another
limit: The maximum size of your environment is
32767 characters. The size of the environment
includes the all the variable names plus all the
values.
Okay, but what if you want to pass more than 32767
characters of information to a process?
You'll have to find something other than the command
line.
We'll discuss some options tomorrow.