我想执行的命令是C#过程中除去报价参数
“C:\ Program Files文件(x86)的\ MYAPP \ Solr的-6.2.0 \ BIN \ Solr的” 开始-f -c -z “10.195.42.93:2181,10.195.42.92:2181” -h 10.195.42.92
这作品就好在命令行。
我试图执行此为C#进程。
注:
'C:\ PROGRAM' 不被识别为一个内部或外部下面的代码,如果我删除周围IPLIST
var IPList="10.195.42.93:2181,10.195.42.92:2181"; var hostIP="10.195.42.92" string command = @"/c ""C:\Program Files (x86)\MyApp\solr-6.2.0\bin\solr"" start -f -c -z """ + IPList + @""" -h " + hostIP; Process process = new Process(); log.Info("Starting " + command); ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; startInfo.Arguments = command; process.StartInfo = startInfo; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.OutputDataReceived += (s, e) => log.Info(e.Data); process.ErrorDataReceived += (s, e) => log.Info(e.Data); process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine();
给出的报价抛出错误工作正常命令,...
我已经看了发表的类似问题Here并试过t他/s
选项,但不理会。 我在这里失踪了什么?
为什么不把命令参数放在[ProcessStartInfo.Arguments](https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.arguments(v = vs.110) .aspx)属性? – stuartd
在命令行上工作的命令没有类似'/ c'的命令,但是在代码中你的命令以'/ c'开始,这实际上看起来像一个命令行参数。 – RBT
是@RBT,它是cmd.exe的一个选项。/C执行由字符串指定的命令,然后终止。 – Karthik