C# 自杀程序 程序运行完毕后删除自身不显示批处理黑窗口 正常运行
2013-07-03 11:16
525 查看
:Repeat del /f "d:\新建 360压缩 ZIP 文件.zip" if exist "d:\新建 360压缩 ZIP 文件.zip" goto Repeat rmdir "d:\" del "\DelUS.bat"epeat rmdir "d:\" del "\DelUS.bat"
之前在删除中文文件名的时候,总是不得行,想了很多都没有找到原因,但是同样的内容,新增一个bat,却又能删除,
因为我的是在代码里生成的批处理内容,问题应该是出在这里在,中文,那是不是编码的问题呢?哈哈,还真是这样,完整代码如下:
private string pathbat { get { return FileDirecName + @"Aaa.BAT"; }//生成的bat路径 } private string path { get { return @"" + this.textBox1.Text.Trim() + ""; } } private string FileName { get { return Path.GetFileName(path);//取得路径中的文件名 } } private string FileDirecName { get { return Path.GetDirectoryName(path);//获取路径中的目录,不包含文件名哦 } } private void button1_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); string text = string.Format("{0}\r\n{1} {2}\r\n{3}\r\n{4}\r\n{5}", ":Repeat", "del /f", "\"" + path + "\"", "if exist \"" + path + "\" goto Repeat", "rmdir \"" + FileDirecName + "\"", "del \"\\DelUS.bat\""); string tex2 = string.Format("{0}\r\n{1} {2}\r\n{3}\r\n{4}\r\n{5}", ":Repeat", "del /f", "\"" + pathbat + "\"", "if exist \"" + pathbat + "\" goto Repeat", "rmdir \"" + FileDirecName + "\"", "del \"\\DelUS.bat\""); sb.Append(text).Append("\r\n").Append(tex2); FileStream fs = new FileStream(pathbat, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("gb2312")); sw.Write(sb.ToString()); sw.Flush(); sw.Close(); System.Diagnostics.ProcessStartInfo myStartInfo = new System.Diagnostics.ProcessStartInfo(); myStartInfo.FileName = pathbat; myStartInfo.WorkingDirectory = FileDirecName; System.Diagnostics.Process myProcess = new System.Diagnostics.Process(); myProcess.StartInfo = myStartInfo; myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; myProcess.Start(); myProcess.WaitForExit(); //等待程序退出 base.Close(); }
以上部分代码来源于网络
相关文章推荐
- cmd窗口输入pip显示不是内部或外部命令,也不是可运行的程序或批处理文件的处理
- 解决方案:cmd窗口pip显示不是内部或外部命令,也不是可运行的程序或批处理文件
- C#中运行批处理文件(bat)或其它程序或脚本
- c# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.
- linux/Ubuntu下Qt creater 界面程序运行时无法正常显示中文的解决
- C# 窗体边角圆弧处理及在C#中调用外部程序(执行批处理,打开窗口等)
- C# 通过窗口句柄获取程序运行路径 通过程序运行路径获取程序图标
- C#控制台程序去掉类似DOS的窗口的显示
- C#删除程序自身【总结】
- C#程序自杀 程序删除自己
- WIN2000控制面板的添加删除程序不能正常运行时的修复
- sublime text3 中输入汉字,程序正常运行,但是python控制台却无法显示中文。
- C#WinForm程序显示控制台窗口Console
- window系统cmd什么命令都用不了,显示 不是内部或外部命令,也不是可运行的程序或批处理文件 解决办法
- android程序正常运行,但LogCat没有显示—解决办法
- 运行批处理不显示DOS窗口的VBS
- C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)
- C#程序删除自身
- 运行批处理不显示CMD窗口
- 一篇在程序还未结束运行时就能把自身删除的文章(2千字)