web-dev-qa-db-ja.com

パラメータをexeに渡す方法は?

サーバーで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アドレスを付け、その後にドライブパスを付ける必要がありますか?

6
spdcbr

以下のコードが役立つことを願っています。

最初の.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]);
}
17
Mou

.exeファイルを右クリック->ショートカットに移動->ターゲットタブで引数を右端に記述...私の場合は機能しました

1
Brijesh Ray

次の投稿でそれを見ることができます(@AndyMcCluggageによる回答):

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_に、必要なすべてのパラメーターを単一のチェーンに配置する必要があります:_@run_file [options] command [arguments]_。

0
Btc Sources