Wrap with single quotes and replace each inner single quote with '''
Backslash does not escape characters within a single quoted string, so it should be left alone.
Reference: https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Single-Quotes
Escape every cmd metacharacter
Windows doesn't create argv for your binary program. Your C library decides how to quote and unquote, etc. All we can do is ensure that cmd passes it all to the target program and does nothing else.
Do that by prefixing every metacharacter with ^
Guarantee that your string is interpreted as a string at its destination.