WinDbg脚本-如何删除文件?

问题描述

我正在使用WinDbg脚本的现有框架,该框架将通过一系列由C ++代码生成输出结果的测试脚本Test1.txt,Test2.txt等。

例如,其中一个测试脚本的一部分应该是

 .if (($spat(@"${var}","18300.000000")==1))
        {
            .logappend C:\Tests\TestResults.txt
            .printf "TestNumber=\t1\tExpected=\t18300.000000\tActual=\t%.6f\t******PASSED******\n",poi(poi(@$t2+@$t6)+0x10)
            .logclose
        }

我正在尝试添加功能来创建一个文件,该文件名称显示正在运行的测试的当前#号,以便用户无需打开文件即可查看其进度。

我的想法是,我将设置脚本生成器,以便在测试#N的开始时,将在脚本中添加一行以创建文件“ currentlyRunningTestN.txt”,并在测试结束时#N,它将在脚本中添加一行以删除文件。但是,在WinDbg Meta命令词汇表:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/meta-commands或受支持的C函数列表(如printf)中,我看不到任何删除功能。我只是丢失了什么,还是要删除WinDbg不支持文件(或等效地重命名文件,这也可以达到我的目的?)如果删除/重命名不起作用,还有另一种方法可以实现我正在寻找的功能

解决方法

使用.shell命令,您可以执行任何类似DOS的命令。尽管我从未尝试删除文件,但应该可以。

您可能已经注意到,WinDbg脚本并非总是在首次尝试时就起作用,请确保在删除文件时,脚本不会在客户的PC上造成大量数据丢失。