Personally, I would eliminate the batch file and do this all through PowerShell, this will be much easier in terms of manipulating or validating against command output. In the installer for SQL Management Studio on the feature selection install "Management Tools" to obtain the PowerShell module. Once the module in installed you could create a script to execute your job. Here is something I created quickly but you could probably use this or something similar:
Function Invoke-Sqljob {
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[String[]] $ServerInstance,
[Parameter(Mandatory=$true)]
[String[]] $DatabaseName,
[Parameter(Mandatory=$true)]
[String[]] $Query
)
Import-Module SQLPS
Invoke-Sqlcmd -ServerInstance "$ServerInstance" -Database "$DatabaseName" -Query "$Query"
}
You would execute Invoke-Sqljob as follows:
Invoke-Sqljob -ServerInstance "DB_Server\SQL_Instance" -Database "DB_Name_Here" -Query "EXEC send_mail_sp_prd"
If you are unable to or would rather use sql authentication you could utilize the -Username and -Password parameters of the Invoke-Sqlcmd cmdlet.
Hope this helps solve you problem.