节点 console.log 行为和 windows stdout

Jas*_*rez 2 windows powershell node.js

在 Windows 中尝试从 node.js 脚本重定向输出时,我注意到了奇怪的行为。此行为的最小可重现示例如下:

从 Windows 控制台 (cmd.exe):

c:\> node -e console.log('hello')
hello
Run Code Online (Sandbox Code Playgroud)

来自 Powershell:

PS C:\> node -e console.log('hello')
PS C:\> 
Run Code Online (Sandbox Code Playgroud)

也就是说,它退出而不向控制台写入任何内容。

这是一个问题,因为当我尝试将输出重定向到文件时,没有写入任何内容,例如

node -e console.log(123) > temp.txt
Run Code Online (Sandbox Code Playgroud)

正在创建一个名为 temp.txt 的空文件。

是否有关于节点如何将 console.out 写入 stdio 的信息?

ste*_*tej 5

看来问题出在括号里。

尝试这个:

node -e "console.log('hello')"
Run Code Online (Sandbox Code Playgroud)

至于重定向,我不知道为什么这不应该起作用。您也可以尝试将其通过管道传输到Out-File temp.txt.