在我们的项目中,我们使用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 ---------------------------------------------------
答案 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"
以避免密码中的特殊字符出现问题