如何用参数执行shell命令?

问题描述 投票:0回答:3

我试图用C#中的参数执行shell命令,并抛出“系统找不到指定的文件”。

我试过了:

p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe sync";

路径是正确的100%NistClock.exe在没有参数“sync”的情况下运行时执行

c# .net shell command arguments
3个回答
6
投票

你应该改变你的代码:

p.StartupInfo.FileName = Path.Combine(Directory.GetCurrentDirectory(), "timesync\\NistClock.exe");
p.StartupInfo.Arguments = "sync";

4
投票
string path = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";                
string args = "sync";
ProcessStartInfo p = new ProcessStartInfo(path, args);
Process process = Process.Start(p);

3
投票

使用Arguments属性。

p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";
p.StartInfo.Arguments = "sync";

顺便说一句,小心使用Directory.GetCurrentDirectory()。请注意,如果您在整个应用程序中使用任何文件对话框,则此方法可以返回不同的内容。使用像Assembly.GetExecutingAssembly().Location这样的东西可能是更好的选择,并从那里解析目录。

© www.soinside.com 2019 - 2024. All rights reserved.