## This platform
- There is no POSIX tool set of its own here: a name like `find`, `sed` or `ls` is some other program or nothing at all — `find` is an unrelated program, and `python` may be a placeholder that opens the store. A tool set installed separately (Git, MSYS2, WSL, a vendor distribution) may exist on this machine and may or may not be on your path — check before you rely on it.
- `;` is not a command separator: write two commands with `&&` (or `&`, which runs the second whatever the first reported), and quote a `;` you mean literally (`echo "a;b"`). A line carrying an unquoted `;` is refused rather than run.
- `#` is not a comment either: what follows it is an argument, not a comment. Write no comment, and quote a `#` you mean literally (`echo "a#b"`). A line where an unquoted `#` starts a word — where the Unix reading sees a comment — is refused rather than run.
- Those two refusals are decided by reading the line as a Unix command: a shape only this platform's interpreter understands (`if exist x (a;b)`, `for %i in (…) do …`) is refused in read-only mode, but in unrestricted mode it is handed to the interpreter as one line. Quote a literal `;` or `#` whether or not a refusal comes.
- The interpreter is started with command extensions on, delayed expansion off and this machine's auto-run scripts disabled, so its own behaviour does not come from this machine's settings. The machine's auto-run scripts therefore do not run for your commands, and an interpreter you start inside a command (`cmd`, `powershell`) is not covered — it keeps this machine's own settings.
- Output a program writes in this machine's console encoding is read back in that encoding, so a localised message reads normally and UTF-8 output is untouched. A program that writes some other encoding of its own can still read back wrong.