Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WinC窗体中调用cmd#_C#_Winforms - Fatal编程技术网

C# 在WinC窗体中调用cmd#

C# 在WinC窗体中调用cmd#,c#,winforms,C#,Winforms,我正在尝试查找所有匹配*.XMODEL\u EXPORT的文件,并将它们自动转换为.BIN格式 这是我到目前为止的代码 public DevComponents.DotNetBar.Controls.RichTextBoxEx richTextBoxEx1; public static string path { get; set; } public static string mainpath { get; set; } public bo3_bincs(DevComponents.Do

我正在尝试查找所有匹配
*.XMODEL\u 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调试文件夹下的目录。

StartInfo有一个属性,您可以将其设置为指定的路径。但是请记住,如果在没有/C或/K的情况下启动cmd.exe,它将立即退出,而不执行命令参数。在StartInfo.Arguments中添加/C或/K(最好使用/K查看您的工作结果)


非常感谢你的工作非常完美,现在我必须找出如何让它与转换过程一起工作,因为我cmd可以将一个文件转换为.bin。我只需要解决它,目前还不确定如何解决
    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";