向Visual Studio的开发人员命令提示符发送参数
本文关键字:命令提示符 参数 Visual Studio 开发 | 更新日期: 2023-09-27 18:18:00
我无法将一些参数传递给vs的Dev cmd提示符,我可以使用经典cmd但不是这个。我需要它是因为我想从可执行文件中执行codeduitest。
下面是我的代码:String Path = @"C:'ProgramData'Microsoft'Windows'Start Menu'Programs'Microsoft Visual Studio 2012'Visual Studio Tools'Developer Command Prompt for VS2012.lnk";
ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = Path;
proc.UseShellExecute = true;
proc.Arguments = @"/c MSTest/h";
Process.Start(proc);
它启动,但没有插入参数,我做错了什么?
EDIT 1 -这些都不工作
Process.Start(Path, @"/c "+"MSTest/h"); - err : invalid path - in dev cmd prompt
或
Process.Start(Path, @"/c ""MSTest/h"); - err: invalid path - in dev cmd prompt
或
Process.Start(Path, @"/c MSTest/h"); - nothing
或
Process.Start(Path, "/c MSTest/h"); -nothing
或
Process.Start(Path, "MSTest/h"); -nothing
编辑2 -这是我的最终代码看起来像,部分工作,dev cmd启动,但没有办法解析参数到它,因为任何参数我传递他们直接到cmd而不是dev-cmd
// ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:'Program Files (x86)'Microsoft Visual Studio 11.0'Common7'Tools'VsDevCmd.bat""");
ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:'Users'butoiu.edward'Desktop'VsDevCmd1.bat");
procStartInfo.UseShellExecute = false;
// procStartInfo.Arguments = "/k MSTest";
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
你试过这种方法吗?
void OpenWithArguments()
{
Process.Start("IExplore.exe", "www.northwindtraders.com");
Process.Start("path to exe", "argument");
}
—FMI
MSDN LINK
更新:
我假设它会这样工作…但不确定
打开sys默认的cmd提示符。并给出第一个参数作为批处理文件路径(C:'Program Files (x86)'Microsoft Visual Studio 11.0'Common7'Tools'VsDevCmd.bat
),并给出一个空格并添加下一个属性。
Process.Start("Path to EXE", "arg1 arg2")
link "文件实际上是visual studio CMD提示符的链接。代替此位置,您可以尝试位于"C:'Program Files (x86)'Microsoft Visual Studio 10.0'VC'vcvarsall.bat"的原始文件
String Path = @"C:'Program Files (x86)'Microsoft Visual Studio 10.0'VC'vcvarsall.bat";
ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = Path;
proc.UseShellExecute = true;
proc.Arguments = @"/c MSTest/h";
Process.Start(proc);