如何将参数传递给exe?

时间:2015-04-19 10:56:53

标签: c# psexec process.start

我在我的服务器上使用psexec在另一台服务器上运行exe文件。如何将参数传递给其他exe?

我在我的服务器上运行的exe是psexec,而psexec又必须运行位于另一个系统上的名为vmtoolsd.exe的exe。如何将参数传递给vmtoolsd.exe?另外,我在哪里通过它?我会将它作为info.Arguments的一部分传递给我吗?我试过了,但它没有用。

ProcessStartInfo info = new ProcessStartInfo(@"C:\Tools");
info.FileName = @"C:\Tools\psexec.exe";
info.Arguments = @"\\" + serverIP + @"C:\Program Files\VMware\VMwareTools\vmtoolsd.exe";
Process.Start(info);

另外,作为info.Arguments的一部分,我必须在vmtoolsd.exe的路径前加上IP地址,然后是驱动器路径吗?

3 个答案:

答案 0 :(得分:14)

希望以下代码可以提供帮助。

来自第一个.exe的代码:

Process p= new Process();
p.StartInfo.FileName = "demo.exe";
p.StartInfo.Arguments = "param1 param2";
p.Start();
p.WaitForExit();

or

Process.Start("demo.exe", "param1 param2");

demo.exe中的代码:

static void Main (string [] args)
{
  Console.WriteLine(args[0]);
  Console.WriteLine(args[1]);
}

答案 1 :(得分:0)

您可以在以下帖子中看到它(由@AndyMcCluggage回答):

How do I start a process from C#?

using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.

它提供了更多的控制,你可以在MSDN中看到,但基本上参数控制很容易,你可以看到,只是用字符串修改属性。

更新:由于上面的代码段代码,您将根据以下内容启动PsExec:

PsExec

您必须使用的格式为:

psexec @run_file [options] command [arguments]

其中:arguments Arguments to pass (file paths must be absolute paths on the target system)

由于您正在启动的流程为psexec,因此在process.StartInfo.Arguments中您必须将所需的所有参数放在一个sigle链中:@run_file [options] command [arguments]

答案 2 :(得分:0)

右键单击.exe文件 - > goto快捷方式 - >在目标标签中写出极右对抗的争论...... 在我的情况下,它工作