这个C#程序使批处理文件运行它然后应该删除该文件.当我运行程序时,它会生成批处理文件,并且如果最后一个if语句不存在则完美地执行它.但是使用最后一个if语句,它会生成文件并删除它,但不会进行任何更改.
string batFile;
batFile = genBat(textBox1.Text);
string path = "C:\\Windows\\System32\\drivers\\etc\\blocksite.bat";
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine(@batFile);
sw.Close();
}
Process.Start(path);
if(File.Exists(path))
{
File.Delete(path)
}
Run Code Online (Sandbox Code Playgroud)
可能会发生的是,您正在设法删除.bat文件,然后cmd.exe进程才能读取并处理它.Process.Start在删除文件之前,您需要等待开始的过程完成.像这样:
using (var process = Process.Start(path)) {
process.WaitForExit();
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我想知道为什么你觉得需要在你不应该写的目录中创建.bat文件.您可以在临时目录下轻松创建.bat文件.如果您需要将工作目录作为其他目录,则可以在启动该过程时轻松指定.
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |