When running long command in .bat file (say 300 characters length)
for example:
Some_exe "C:/Documents and Settings/Some user/Some folder1/Some folder2/Some folder3/Some folder4 ... -Some_exe_arg1="arg 1 name" -Some_exe_arg2="arg 2 name" -Some_exe_arg3="arg 3 name"
Is there a limit on the line size CMD.exe can process?
Should i use .CMD or .BAT?
Is there any way i can overcome this limitation?
Thank you!
The minimum of the maximum batch line length is 8191 bytes!
This means that a line can be in any case 8191 bytes long, but it is also possible to create legal batch lines with nearly unlimited length.
Samples
echo Longline with 8191 characters.........
set "var=a"
echo UltraLongLine %var:4000chars=% %var:4000chars=% %var:4000chars=% %var:4000chars=%
echo Test <8000Chars <8000chars <8000chars .... <nul
The point is here, that all lines are less than 8192 bytes long after parsing
All versions of Windows from XP onward support a maximum batch line length of 8191 bytes: http://support.microsoft.com/kb/830473
Often times executables get around the command line length limit by allowing for parameter values to be specified in a file. For example, FINDSTR has a /G:filename option that specifies the name of a file that contains search strings.
There is no difference between .BAT vs .CMD with regard to line length. In fact, there is almost no difference between them at all: https://stackoverflow.com/a/148991/1012053. (Note - most of the comments questioning the accuracy of the linked answer predate the most recent edited version of the answer. The linked answer is now correct.)