Сначала запросите пароль в переменную, а потом запускайте, передавая пароль из переменной.
@echo off
cls
SET /P psqlpassword="Введите пароль (Enter для завершения): "
if "%psqlpassword%"=="" exit /b
"C:\Program Files\PostgreSQL\13\bin\psql.exe" -U postgres -W %psqlpassword% -f D:/script.sql -a
pause
Если пароль введён неверно, будет отображено сообщение об ошибке, и выполнение пойдёт дальше.
Если надо заново запросить пароль, следует использовать проверку на ошибку:
@echo off
:execute_psql
cls
SET /P psqlpassword="Введите пароль (Enter для завершения): "
if "%psqlpassword%"=="" exit /b
"C:\Program Files\PostgreSQL\13\bin\psql.exe" -U postgres -W %psqlpassword% -f D:/script.sql -a
if errorlevel 1 goto :execute_psql
pause
Правда, нужно убедиться, что psql.exe её возвращает, что не факт. Также следует убедиться, что он не возвращает ошибки в иных ситуациях, когда повторный запрос пароля и запуск не требуются, или ввести проверку на код ошибки.