C# 在指定目录下打开操作系统shell并执行指定命令,等待完成后exit退出
时间: 2024-09-24 11:10:59 浏览: 26
在C#中,你可以通过`Process`类来打开操作系统的shell(如cmd或PowerShell)并执行命令。以下是一个基本示例,展示了如何在指定目录下执行命令:
```csharp
using System.Diagnostics;
public static void RunCommand(string directoryPath, string command)
{
// 设置启动过程的属性
ProcessStartInfo psi = new ProcessStartInfo();
psi.WorkingDirectory = directoryPath; // 指定工作目录
psi.FileName = "cmd.exe"; // 使用cmd.exe (Windows) 或 "powershell.exe" (PowerShell)
psi.Arguments = $" /c {command}"; // 命令加上必要的转义
// 启动一个新的进程
using (Process process = new Process())
{
process.StartInfo = psi;
process.Start();
// 等待进程完成(这里设置一个较长的时间,实际生产环境应根据实际情况调整)
process.WaitForExit(5000); // 等待5秒,可根据需要修改时间
}
}
// 调用函数
RunCommand(@"C:\example\directory", "dir"); // 执行dir命令
```
这个例子假设你想要在Windows环境下运行,如果你需要在PowerShell中执行,只需将`psi.FileName`改为`"powershell.exe"`即可。
注意:`WaitForExit`方法会阻塞直到进程结束,因此你需要确保你有足够的超时处理,防止程序死锁。