Ok ya si te entendi.
Me habia perdido jeje, quisiera poder ayudarte mas, pero no se BATCH aunque aun asi imagino, que en BATCH se debe poder recibir entradas del teclado, por ende si creas un script podrias poner que la primera opcion que se imprima sea 'contrasena :' y recoger lo que el usuario introduzca y guardarlo en una variable, y usar dicha variable como contrasena en el login de Mysql. O sea por ejemplo.
print STDOUT "contrasena : "
$respuesta = <STDIN> //Tomamos la entrada del usuario y la guardamos
if (defined $respuesta) { //Aqui se valida si $respuesta esta o no vacia igual puedes comparar con if ($respuesta != "")
$respuesta1 = mysql -h localhost -root -p$respuesta;
if ($respuesta1) {
grant all privileges on basedatos.* to 'fulano'@'%' identified by 'contrasena' with grant option;
}
} else {
print STDOUT "Error No se puede conectar\n"; }
Se que se puede hacer mejor de ahi lol, pero mas o menos vas captando la idea que te expongo verdad
Ahora traducir eso a BATCH ya no sabria. Espero que alguien te de mejor ejemplo.