您的位置:首页 > 编程语言 > C#

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();
}


以上部分代码来源于网络

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐