Indeed, the Windows (cmd) and Bash shells are radically different.
In most Unix shells, the # character outside of a quoted string makes the rest of the line a "comment", so everything after it is ignored, and the {} are also special. That's why you
must enclose it in quotes, which will be stripped before passing to the program (VLC in this case).
Try these:
You may look into
http://www.tldp.org/LDP/abs/html/; don't mind the "Advanced" bit - it has a friendly Basics section.
In the standard Windows command processor the # sign means nothing, and quotes (among other things) are kept in the argument given to the program, so you type the sout: specification plainly.