VSCode具有Windows API,可以与终端进行交互。
例如,您可以发送Linux命令pwd
,并且命令输出可能是/usr/home/userName
我尝试将输出写入磁盘,然后使用类似pwd > directory.txt
的方式读取它;
terminal.sendText(`pwd > directory.txt`);
这似乎可行,但是我想知道是否还有更优雅的东西。
//Create a new terminal
let terminal = vscode.window.createTerminal(`Name of terminal`, 'C:\path\to\terminal\shell\shell.exe');
// send command to newly created terminal
terminal.sendText(`pwd`);
我确定上面的代码可以正常工作,因为我可以使用以下命令将输出写入文件:
terminal.sendText(`pwd > directory.txt`);
问题是,如何将terminal.sendText()
的输出作为字符串,而不必先将它们写入磁盘?
答案 0 :(得分:1)
vscode还提供了一个事件,以监听正在写入终端的任何数据,使用以下代码来监听终端的写入:
vscode.window.onDidWriteTerminalData((e) => {console.log(e.data)})
但是它将监听所有写操作,因此您必须放置一些条件以防止读取终端上的每个按键,也许您只能在e.data == \ n或其他条件下才能读取。 / p>