其实已在运行了,你Hidden了
在批文件中加个暂停的,把  p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;不要
这样测试一下就清楚了  string str = System.Environment.CurrentDirectory;
            str += "\\一键转换文件后缀名.bat";
            string txt = "";
            txt = "ren *" + textBox1.Text + " *" + textBox2.Text+"\r\n";            StreamWriter sw = new StreamWriter(str, false, Encoding.UTF8);
            sw.Write(txt);
            sw.Write("PAUSE");
            sw.Close();            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = str; //程序名称 
            p.StartInfo.Arguments = ""; //参数 
            //p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            p.Start();

解决方案 »

  1.   

    #1
    测试时先将窗口放出来,如一楼所说,将WindowStyle注释。而你的代码可以直接简化为:Process.Start(str);
    这样运行这个Bat的时候就会有个窗体出来,方便看效果。
    如果执行不成功,再看看上面代码哪里出了问题,如文件名是否正确,是否写入数据成功。
    最后一步调用反而是最简单的。
      

  2.   

    有必要么?改名用
    foreach (var item in Directory.GetFiles("\\路径", "*.*"))
    {
        File.Move(item, 新名字);
    }
      

  3.   

    BAT好像要求编码是ANSI的,你写流的时候把编码改成Encoding.Default试试