For the c# part. Just remember the arguments must be quoted for it to work
string _userName = @"xrxodc\394657";
string _password = @"5one0one4%";
Process proc = new Process();
proc.StartInfo.FileName = @"C:\somewhere\batchFile.cmd";
proc.StartInfo.Arguments = String.Format("\"{0}\" \"{1}\"", _userName, _password)
proc.Start();
For the batch part
....
set "userName=%~1"
set "password=%~2"
....
.... InstallUtil /username=%userName% /password=%password% "%~dp0TestPrint.exe"
And, i can not test it, but if it is allowed, you will need to change the syntax to
.... InstallUtil /username="%userName%" /password="%password%" "%~dp0TestPrint.exe"
to avoid problems with special characters in passwords