I'm confused.
- There's no
!P
in your command.
- If you do not check "Remember session password and pass it to PuTTY (SSH)", the password won't be passed at all. If you check it, you claim that it is passed "correctly". So when is it passed incorrectly?
Note that if you check
"Remember session password and pass it to PuTTY (SSH)", but do not include
!P
in the command, WinSCP passes
-pw password
as the first argument of the program (
WindowsTerminal.exe
in your case). So the behaviour is as expected in that case. If your case, you need to explicitly use
-pw "!P"
to designate a correct placement of the password in the command.
See
https://winscp.net/eng/docs/ui_pref_integration_app#password
If the problem are the special characters, as discussed by the topic you have linked, then I do not understand the point of your post. The other topic shows that it's a problem of PuTTY, not WinSCP.
Though, it might be worth trying WinSCP 6.2, as it can pass the password to PuTTY using named pipe instead of commandline. It might help, at least with some special characters (like quotes).
Again, see
https://winscp.net/eng/docs/ui_pref_integration_app#password