在winforms c#中调用CMD

本文关键字:调用 CMD winforms | 更新日期: 2023-09-27 18:05:07

我试图找到所有与*.XMODEL_EXPORT匹配的文件,并自动将它们转换为。bin格式。

这是我到目前为止的代码。

public DevComponents.DotNetBar.Controls.RichTextBoxEx richTextBoxEx1;
public static string path { get; set; }
public static string mainpath { get; set; }
public bo3_bincs(DevComponents.DotNetBar.Controls.RichTextBoxEx elfenliedtofan5txt)
{
    richTextBoxEx1 = elfenliedtofan5txt;
}
public void check64()
{
    if(mainpath == null)
    {
        string programFilesX86 = Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%");
        mainpath = programFilesX86;
    }
    else
    {
        string programFiles = Environment.ExpandEnvironmentVariables("%ProgramW6432%");
        mainpath = programFiles;
    }
}
public void findpath()
{
    if (path == null)
    {
        MessageBox.Show(mainpath);
        string elfenlied = mainpath + @"/aaa/";
        string[] oDirectories = Directory.GetFiles(elfenlied, "*.XMODEL_EXPORT", SearchOption.AllDirectories);
        foreach (string oCurrent in oDirectories) 
            richTextBoxEx1.Text = oCurrent;
    }
    else
    {
    }
}
public void convertbin()
{
    path = mainpath + "//aaa//";
    MessageBox.Show(path);
    Process bin = new Process();
    bin.StartInfo.FileName = "cmd.exe";
    bin.StartInfo.Arguments = "cd " + path;
    bin.StartInfo.RedirectStandardOutput = true;
    bin.StartInfo.UseShellExecute = false;
    //bin.StartInfo.Arguments = path;
    //bin.StartInfo.RedirectStandardInput = true;
    //bin.StartInfo.Arguments = "rename *.**.bin";
    bin.Start();
    richTextBoxEx1.Text = bin.StandardOutput.ReadToEnd();
}

我想让它转换指定文件夹中的所有文件,但它只是默认为Visual Studio Debug文件夹下的目录。

在winforms c#中调用CMD

StartInfo有一个WorkingDirectory属性,你可以将它设置为你想要的路径。但是请记住,如果启动cmd.exe时没有使用/C或/K,它会立即退出,而不执行命令参数。添加/C或/K到你的StartInfo。争论(更好/K看到你努力的结果)

    path = mainpath + "//aaa//";
    MessageBox.Show(path);
    Process bin = new Process();
    bin.StartInfo.FileName = "cmd.exe";
    bin.StartInfo.WorkingDirectory = path;
    //bin.StartInfo.Arguments = "cd " + path;
    bin.StartInfo.Arguments = "/K dir";