我需要使用 startInfo.Arguments 将文本框中的序列号(文本)写入cmd命令。 重点是,我在这里做的所有搜索都指向替换参数的开头或结尾的文本。 但我需要将textBox中的文本插入到参数的中间,如下所示:
string input1 = textBox1.Text;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "CMD.exe";
startInfo.Arguments = "/c adb -s "textBox1.Text" shell dumpsys battery";
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
文本框的内容已存储在input1
变量中。
现在我们有多个选项可以在C#中执行此操作:
startInfo.Arguments = String.Format(@"/c adb -s ""{0}"" shell dumpsys battery", input1);
(在@ string表示法中,双引号通过加倍来保留在结果字符串中)
或连接:
startInfo.Arguments = "/c adb -s \"" + input1 + "\" shell dumpsys battery";
(反斜杠转义的双引号将保留结果字符串中的双引号)
或者,最近我们可以使用字符串插值:
startInfo.Arguments = $@"/c adb -s ""{input1}"" shell dumpsys battery";
无论哪种方式,都要考虑在执行从用户获得的任何内容之前验证该值,尤其是在以管理员权限启动时。