static void Main(string[] args)
{
string myFile = Process.GetCurrentProcess().MainModule.FileName;
string Cmd = "@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
StreamWriter myStreamWriter = new StreamWriter("suicide.bat",true,Encoding.Default);
myStreamWriter.Write(Cmd);
myStreamWriter.Close();//批处理里"\n"乱码了,根本没换行
Console.WriteLine(Cmd); //显示正常
Console.ReadLine();
}
总不要:myStreamWriter.WriteLine();一行行来吧?
{
string myFile = Process.GetCurrentProcess().MainModule.FileName;
string Cmd = "@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
StreamWriter myStreamWriter = new StreamWriter("suicide.bat",true,Encoding.Default);
myStreamWriter.Write(Cmd);
myStreamWriter.Close();//批处理里"\n"乱码了,根本没换行
Console.WriteLine(Cmd); //显示正常
Console.ReadLine();
}
总不要:myStreamWriter.WriteLine();一行行来吧?
改成:
string Cmd = "@echo off\\n:try \\ndel " + myFile + "\\nif exist " + myFile + " goto try\\ndel %0"; 或者:
string Cmd = @"@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
这样还是乱码.
2,3,4楼结果是:
@echo off\n:try \ndel C:\Documents and Settings\不能说的\My Documents\Visual Studio 2005\Projects\自杀程序\自杀程序\bin\Debug\自杀程序.vshost.exe
if exist C:\Documents and Settings\不能说的\My Documents\Visual Studio 2005\Projects\自杀程序\自杀程序\bin\Debug\自杀程序.vshost.exe goto try
del %0
这样的批处理有什么用呢?
我要的是\n就换行!!!!!!!!!!!!!!!!!!!!!!!!@echo off
:try
del C:\Documents and Settings\不能说的\My Documents\Visual Studio 2005\Pro
jects\自杀程序\自杀程序\bin\Debug\自杀程序.vshost.exe
if exist C:\Documents and Settings\不能说的\My Documents\Visual Studio 200
5\Projects\自杀程序\自杀程序\bin\Debug\自杀程序.vshost.exe goto try
del %0
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.IO;namespace 自杀程序
{
class Program
{
static void Main(string[] args)
{
string myFile = Process.GetCurrentProcess().MainModule.FileName;
string Cmd = "@echo off\\n:try \\ndel " + myFile + "\\nif exist " + myFile + " goto try\\ndel %0";
StreamWriter myStreamWriter = new StreamWriter("suicide.bat",false,Encoding.Default);
//false若已有则覆盖没有则创建(true若已有同名文件存在回添加到其内容后面)
myStreamWriter.Write(Cmd);
myStreamWriter.Close();
Console.WriteLine(Cmd);
Console.ReadLine();
}
}
}
同志们要实验啊,自己试试看看结果是什么.
请加上空格,谢谢
string Cmd = "@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
string[] cmds = Cmd.Split( "\n".ToCharArray() );
StreamWriter myStreamWriter = new StreamWriter( "suicide.bat", true, Encoding.Default );
foreach( string cmd in cmds )
{
myStreamWriter.WriteLine( Cmd );
}
myStreamWriter.Close();//批处理里"\n"乱码了,根本没换行
Console.WriteLine( Cmd ); //显示正常
Console.ReadLine();
myStreamWriter.WriteLine("@echo off);
myStreamWriter.WriteLine(try);
myStreamWriter.WriteLine(*********);
myStreamWriter.WriteLine(*******);
这种格式.
OK
也可以
string Cmd = "@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
Cmd = Cmd.Replace( @"\n", Environment.NewLine );
StreamWriter myStreamWriter = new StreamWriter( "suicide.bat", true, Encoding.Default );
myStreamWriter.WriteLine( Cmd );
myStreamWriter.Close();//批处理里"\n"乱码了,根本没换行
Console.WriteLine( Cmd ); //显示正常
Console.ReadLine();
不过我就是用你的代码运行结果竟然是对的。
string Cmd = @"@echo off\n:try \ndel " + myFile + "\nif exist " + myFile + " goto try\ndel %0";
Cmd = Cmd.Replace( @"\n", Environment.NewLine );
StreamWriter myStreamWriter = new StreamWriter( "suicide.bat", true, Encoding.Default );
myStreamWriter.WriteLine( Cmd );
myStreamWriter.Close();
Console.WriteLine( Cmd );
Console.ReadLine();