When I open cmd.exe and type that first line and push ENTER, it works fine. When I input that other line and push ENTER, it closes immediately.
I can change (\'a\') to (
Add a paranthesis "(", like this:
for %q in ('a') do (
It will prompt you with a "More?" in the following lines until you decide to close your for block with a ")"
Looking at the help for 'FOR' ('FOR /?'), you can see that the '/F' option is for parsing file input and has the following options:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
Note that last entry... a single-quoted value is treated as a command to run, and the output of that command is what 'FOR' is parsing.
Perhaps you have an 'a' command/executable on one machine, but not on the other?
You should only be using the '/F' flag if you specifically want the behavior that '/F' supplies.
This guy seems to have solved a very similar problem successfully:
for /f closes cmd window immediately
The problem in that case turned out to have to do with the COMSPEC
environment variable, it being incorrectly set initially, as it seems. The guy applied logging out of the Windows account and back in.