The string:C:\Program Files\FOO bar
means run C:\Program
with arguments Files\FOO
. Given the non-existence of C:\Program
, this is generally not what is intended.
The string:"C:\Program Files\FOO" bar
means run C:\Program Files\FOO
with argument bar
. This is generally what is intended
Large computer software systems do some things that their authors intended, and some things that their authors did not happen to intend one way or another. Authors tend to guarantee that the intentional parts continue to work from one version to the next, but don't guarantee (or even know) that the operation of the uninintentional parts will remain unchanged.
Sensible programmers write by the documentation, since that is what is guaranteed and intentional. Poor programmers discover something that "seems to work", and rely on it. We sneer at that as "programming by coincidence"
I hypothesize that this is one such case. By some accident, the incorrectly-quoated string managed to do the right thing before, and now it doesn't. You can't blame the OS authors for not supporting something now that they didn't support before. It is not possible to guarantee no changes in undocumented behaviour: otherwise you could not change anything ever.