我正在尝试使用C#中的参数执行shell命令,并且“ 系统找不到指定的文件 ”被抛出。
我试过了:
p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe sync";
路径正确100%NistClock.exe在没有参数“sync”
的情况下运行时执行答案 0 :(得分:6)
您应该更改一下代码:
p.StartupInfo.FileName = Path.Combine(Directory.GetCurrentDirectory(), "timesync\\NistClock.exe");
p.StartupInfo.Arguments = "sync";
答案 1 :(得分:4)
string path = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";
string args = "sync";
ProcessStartInfo p = new ProcessStartInfo(path, args);
Process process = Process.Start(p);
答案 2 :(得分:3)
使用Arguments
属性。
p.StartInfo.FileName = Directory.GetCurrentDirectory() + "\\timesync\\NistClock.exe";
p.StartInfo.Arguments = "sync";
顺便说一句,请注意使用Directory.GetCurrentDirectory()
。请注意,如果您在整个应用程序中使用任何文件对话框,则此方法可以返回不同的内容。使用Assembly.GetExecutingAssembly().Location
之类的东西可能是更好的选择,并从那里解析目录。