The problem comes effectively from the linux EOL (LF only).
If I convert spellchecker\update.bat to Windows EOL (CR + LF) it's OK.
If on the original update.bat (Linux EOL) I add your lines with SET LOCAL, it still does not work. But If I convert this last file to Windows EOL, it's OK again.
So, the set local does not solve the problem. It's clearly an EOL problem.
The error message I obtain is in french :
update31_64.bat
doesn't était inattendu.
Which means something like : doesn't was unexpected. The string "doesn't" is on the line containing ":mkdirSilent". It's why I said that this line was bad interpreted, as if strings following the - sign were triing to be executed.
May be a simple solution is to separate the strings following the - sign as a REM line. Like that, it works with Linux
and Windows EOL.
gd_on