从 WinDBG 的 JavaScript 脚本访问文件系统

vnd*_*vnd 5 javascript filesystems windbg

我目前正在使用用 JavaScript 编写的 WinDBG 脚本,正如Microsoft 所描述的那样。

如何从 JavaScript 代码中访问文件系统?我对读取和写入位于磁盘上某处的文件感兴趣。对于在浏览器上执行的 JavaScript,由于安全原因,这些功能被禁用,但例如 NodeJS 有自己的库来支持文件系统操作。

Jac*_*ace 3

这有效:

"use strict";

function invokeScript() {
    var debugControl = host.namespace.Debugger.Utility.Control;

    var output = debugControl.ExecuteCommand("vertarget");

    writeOutputToFile(output);
}

function writeOutputToFile(output) {

    var logFilePath = "c:\\debugging\\output\\output.log";

    var logFile;

    if (host.namespace.Debugger.Utility.FileSystem.FileExists(logFilePath)) {        
        logFile = host.namespace.Debugger.Utility.FileSystem.CreateFile(logFilePath, "OpenExisting");
    }
    else {        
        logFile = host.namespace.Debugger.Utility.FileSystem.CreateFile(logFilePath);
    }

    var textWriter = host.namespace.Debugger.Utility.FileSystem.CreateTextWriter(logFile, "Utf16");

    try {
        for (var line of output) {
            textWriter.WriteLine(line);
        }
    }
    finally {
        logFile.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)