Nevím úplně proč voláte PuTTY tímhle způsobem z bat souboru, nedává mi to moc smysl.
Pokud bych chtěl rovnou otevírat nějaké uložené spojení, tak použiju -load "jmeno spojeni".
Kdybych chtěl, abych nemusel pokaždé zadávat heslo a zároveň to neměl v plaintextu v bat souboru, tak to vyřeším pomocí privátního a veřejného klíče. Tzn. vygeneruji si privátní (.ppk) a veřejné klíče pomocí aplikace PuTTYgen, vložím veřejný klíč na server (RPi) jako řádek do ~/.ssh/authorized_keys. V PuTTY pak ve spojení nastavím cestu ke klíči v Connection > SSH > Auth > Credentials.
Kdybych to pak chtěl používat z příkazové řádky bez téhle specifikace, mám ještě možnost předat cestku k priv. klíči přes -i soubor.ppk.
Další možnost pak je nepřidávat to do spojení, ale použít Pageant, což se hodí, když je priv. klíč (použitelný na více serverech) například chráněn heslem. Heslo se zadá jednou při otevírání klíče v Pageantu a pak celou dobu drží i na opakovaná spojení.
Kdybych chtěl vzdáleně (na RPi) spouštět příkazy, tak spíš použiju aplikaci plink, která je přímo míněná na tyhle úkony, kdy nepotřebujete grafický terminál.
Ale zpátky k tomu, co jste se ptal. Důvod proč to nechodí je pravděpodobně to, že jméno a port se musí rozepsat jako zvláštní parametry. Např:
putty.exe -ssh -pw heslo -l leo -P 4581 192.168.1.5