为什么"1.bat"无法成功运行?任何帮助将不胜感激."1.bat"已成功创建.它可以无错误地运行,但无法重命名文件.
private void button1_Click(object sender, EventArgs e)
{
string str = System.Environment.CurrentDirectory;
str += "\\1.bat";
string txt = "";
txt = "ren *.mp3 *.wav";
StreamWriter sw = new StreamWriter(str,false, Encoding.UTF8);
sw.Write(txt);
sw.Close();
Process p = new Process();
p.StartInfo.FileName = str;
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
}
Run Code Online (Sandbox Code Playgroud)
一个问题是您的文件是使用UTF-8 BOM编写的.尝试传递Encoding.Default测试这个.或者new UTF8Encoding(false)作为编码传递以传递省略BOM的UTF-8编码.
另一个问题(您刚刚在编辑中添加)是您设置UseShellExecute为false.这要求您传递的文件是可执行文件.你的档案不是.您需要UseShellExecute成为true让Shell工作如何处理您的.bat文件.
另一个可能的问题是当前目录可能不是您认为的那样.
当面对这样的问题时,根本不需要无助.做一些调试.pause在批处理文件的末尾添加一个,并确保可以看到控制台.你会马上发现问题所在.学习如何调试与学习如何编程一样重要.在你做前者之前,你将无法做到后者.
如果我不得不这样做,通过外部流程,我会:
UseShellExecute为false.cmd.exe为可执行文件.但是,使用C#直接执行此操作会更容易,因此避免必须启动外部进程.
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |