使用批处理文件安装Windows服务failure-passwrd包含%

时间:2014-03-26 07:45:34

标签: .net windows batch-file windows-services installation

在我们的项目中,我们使用Windows应用程序安装Windows服务,用户输入用户名和密码。当他们点击提交时,我们正在运行批处理文件,我们正在替换用户名和密码并运行批处理文件

问题:密码包含%字符

时安装失败

我的批处理文件内容

@ECHO OFF


set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo Installing TestPrint Win Service...
echo ---------------------------------------------------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil /username=domain\112233/password=5one0one4%  "%~dp0TestPrint.exe"
echo ---------------------------------------------------

1 个答案:

答案 0 :(得分:0)

对于c#部分。请记住,必须引用它才能使其工作

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();

批次部分

....
set "userName=%~1"
set "password=%~2"
....
.... InstallUtil /username=%userName% /password=%password%  "%~dp0TestPrint.exe"

而且,我无法测试它,但如果允许,则需要将语法更改为

.... InstallUtil /username="%userName%" /password="%password%"  "%~dp0TestPrint.exe"

以避免密码中的特殊字符出现问题