c#怎么执行批处理?不要外部带bat直接写到代码里

时间:2022-09-02 23:57:21
@echo off
color A
netsh winsock reset
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" 
del /f /s /q "%userprofile%\Local Settings\Temp\*.*" 
del /f /s /q %systemdrive%\*.tmp 
del /f /s /q %systemdrive%\*._mp 
del /f /s /q %systemdrive%\*.log 
del /f /s /q %systemdrive%\*.gid 
del /f /s /q %systemdrive%\*.chk 
del /f /s /q %systemdrive%\*.old 
del /f /s /q %systemdrive%\recycled\*.* 
del /f /s /q %windir%\*.bak 
del /f /s /q %windir%\prefetch\*.* 
rd /s /q %windir%\temp & md %windir%\temp 
rem del /f /q %userprofile%\COOKIES s\*.* 
rem del /f /q %userprofile%\recent\*.* 
%windir%\system32\sfc.exe /purgecache 
%windir%\system32\defrag.exe %systemdrive% -b 
echo 清除系统完成! 
echo. & pause 


这些不要改,怎么又办法直接写到c#代码里  运行的时候像运行bat文件一样 可见的  运行完自动关闭。在线等

11 个解决方案

#1


BAT只是脚本,运行他的是DOS系统。如果按你说的不用外部程序,直接在C#中运行以上代码,你需要在C#里内嵌DOS系统的全部代码。

#2


创建个临时bat文件,把这些脚本写进去,然后运行

#3


引用 2 楼 tianxia08 的回复:
创建个临时bat文件,把这些脚本写进去,然后运行

对啊 可以  比如嵌入这个bat文件也可以啊

#4


Process p = new Process("cmd.exe");
p.xxxxxxx
....

#5


看了LZ的代码 感觉很可笑.

我知道你想做一点好玩的东西 比如"一键清理垃圾".

既然bat实现了.给你自己用或者他人用  双击exe跟双击bat 有什么区别? 我觉得没区别.

其次,既然你用了bat 你得了解一点吧.比如上述代码是获取系统临时目录 删除里面的文件.

你用c# 也可以写出来这样的代码.

这样的话 逼格是不是更高一些呢?

另外2#的 如果你可以接收  也可以啊.

几句话就搞定了.


var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");

#6


引用 4 楼 crystal_lz 的回复:
Process p = new Process("cmd.exe");
p.xxxxxxx
....


 对,就是这样。

#7


引用 5 楼 diaodiaop 的回复:
看了LZ的代码 感觉很可笑.

我知道你想做一点好玩的东西 比如"一键清理垃圾".

既然bat实现了.给你自己用或者他人用  双击exe跟双击bat 有什么区别? 我觉得没区别.

其次,既然你用了bat 你得了解一点吧.比如上述代码是获取系统临时目录 删除里面的文件.

你用c# 也可以写出来这样的代码.

这样的话 逼格是不是更高一些呢?

另外2#的 如果你可以接收  也可以啊.

几句话就搞定了.


var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");




你的这个的代码不行啊

#8


有人吗???????

#9



var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");


我觉得你应该连基本的c#也不会..否则上面的代码 怎么可能不行?

或者 你不会是直接copy到vs里的吧.......... c#怎么执行批处理?不要外部带bat直接写到代码里

#10


引用 9 楼 diaodiaop 的回复:

var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");


我觉得你应该连基本的c#也不会..否则上面的代码 怎么可能不行?

或者 你不会是直接copy到vs里的吧.......... c#怎么执行批处理?不要外部带bat直接写到代码里

sys.io.file.writealltext
c#怎么执行批处理?不要外部带bat直接写到代码里

#11



 StringBuilder cmdBuilder = new StringBuilder();
            //cmdBuilder.AppendLine(@"del /f /s /q %systemdrive%\*.tmp");
            //cmdBuilder.AppendLine(@"del /f /s /q % systemdrive %\*._mp");
            //todo, build your command
            cmdBuilder.AppendLine(@"del /f /s /q d:\test.txt");

            Process cmdExecutor = new Process();
            cmdExecutor.StartInfo.FileName = "cmd.exe";
            cmdExecutor.StartInfo.UseShellExecute = false;
            cmdExecutor.StartInfo.RedirectStandardInput = true;
            cmdExecutor.Start();

            cmdExecutor.StandardInput.Write(cmdBuilder.ToString());
            cmdExecutor.StandardInput.Flush();
            cmdExecutor.StandardInput.Close();

            cmdExecutor.WaitForExit();
            cmdExecutor.Close();

#1


BAT只是脚本,运行他的是DOS系统。如果按你说的不用外部程序,直接在C#中运行以上代码,你需要在C#里内嵌DOS系统的全部代码。

#2


创建个临时bat文件,把这些脚本写进去,然后运行

#3


引用 2 楼 tianxia08 的回复:
创建个临时bat文件,把这些脚本写进去,然后运行

对啊 可以  比如嵌入这个bat文件也可以啊

#4


Process p = new Process("cmd.exe");
p.xxxxxxx
....

#5


看了LZ的代码 感觉很可笑.

我知道你想做一点好玩的东西 比如"一键清理垃圾".

既然bat实现了.给你自己用或者他人用  双击exe跟双击bat 有什么区别? 我觉得没区别.

其次,既然你用了bat 你得了解一点吧.比如上述代码是获取系统临时目录 删除里面的文件.

你用c# 也可以写出来这样的代码.

这样的话 逼格是不是更高一些呢?

另外2#的 如果你可以接收  也可以啊.

几句话就搞定了.


var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");

#6


引用 4 楼 crystal_lz 的回复:
Process p = new Process("cmd.exe");
p.xxxxxxx
....


 对,就是这样。

#7


引用 5 楼 diaodiaop 的回复:
看了LZ的代码 感觉很可笑.

我知道你想做一点好玩的东西 比如"一键清理垃圾".

既然bat实现了.给你自己用或者他人用  双击exe跟双击bat 有什么区别? 我觉得没区别.

其次,既然你用了bat 你得了解一点吧.比如上述代码是获取系统临时目录 删除里面的文件.

你用c# 也可以写出来这样的代码.

这样的话 逼格是不是更高一些呢?

另外2#的 如果你可以接收  也可以啊.

几句话就搞定了.


var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");




你的这个的代码不行啊

#8


有人吗???????

#9



var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");


我觉得你应该连基本的c#也不会..否则上面的代码 怎么可能不行?

或者 你不会是直接copy到vs里的吧.......... c#怎么执行批处理?不要外部带bat直接写到代码里

#10


引用 9 楼 diaodiaop 的回复:

var str="你上面的代码";
sys.io.file.writealltext("1.bat",str);
process.start("1.bat");


我觉得你应该连基本的c#也不会..否则上面的代码 怎么可能不行?

或者 你不会是直接copy到vs里的吧.......... c#怎么执行批处理?不要外部带bat直接写到代码里

sys.io.file.writealltext
c#怎么执行批处理?不要外部带bat直接写到代码里

#11



 StringBuilder cmdBuilder = new StringBuilder();
            //cmdBuilder.AppendLine(@"del /f /s /q %systemdrive%\*.tmp");
            //cmdBuilder.AppendLine(@"del /f /s /q % systemdrive %\*._mp");
            //todo, build your command
            cmdBuilder.AppendLine(@"del /f /s /q d:\test.txt");

            Process cmdExecutor = new Process();
            cmdExecutor.StartInfo.FileName = "cmd.exe";
            cmdExecutor.StartInfo.UseShellExecute = false;
            cmdExecutor.StartInfo.RedirectStandardInput = true;
            cmdExecutor.Start();

            cmdExecutor.StandardInput.Write(cmdBuilder.ToString());
            cmdExecutor.StandardInput.Flush();
            cmdExecutor.StandardInput.Close();

            cmdExecutor.WaitForExit();
            cmdExecutor.Close();