I think filesize can be anything up to 2 GB, perhaps even more. It's an interpreted language, so if this is done right, filesize limit should be the filesize limit of the file system. I never had any errors with batch files being too large, and some of those I created were several MBs in size.
There should be a line length limit, but it should be more than 256. This can easily be tested, just do some "set A=123456789012...endofline", after that "echo %A%", and you'll see how far you can go.
EDIT: Works for me with very long lines (around 4K), but at 8K echo gives a message "Line too long", so 8192 bytes should be some limit.
EDIT2: Now tested for filesize, too, tested with "echo off", thousands of set lines, after that "echo end", worked for a 11 MB file (although it took some seconds to finish :) - no limit in sight here.
Update: 110 MB worked, too. Is this enough? ;)