【问题标题】:Node console.log behavior and windows stdout节点 console.log 行为和 windows 标准输出
【发布时间】:2012-10-16 18:16:50
【问题描述】:

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

从 Windows 控制台 (cmd.exe):

c:\> node -e console.log('hello')
hello

来自 Powershell:

PS C:\> node -e console.log('hello')
PS C:\> 

也就是说,它在没有向控制台写入任何内容的情况下退出。

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

node -e console.log(123) > temp.txt

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

关于 node 如何将 console.out 写入 stdio 有什么问题吗?

【问题讨论】:

    标签: windows node.js powershell


    【解决方案1】:

    看来问题出在括号里。

    试试这个:

    node -e "console.log('hello')"
    

    至于重定向,这不应该起作用是有原因的。您也可以尝试通过管道将其发送到Out-File temp.txt

    【讨论】:

    • ah - 这有助于从命令行运行它的示例,(谢谢!)但是当我从脚本文件重定向输出时仍然得到空文件,例如“node script.js > 日志.txt"。这在 Powershell 中是空白的,但在 cmd.exe 中是预期的。有什么想法吗?
    • 我接受这个作为答案,因为它在另一台机器上运行良好。我永远无法让它在我原来的机器上工作,所以我怀疑我还有其他一些奇怪的事情发生。谢谢!
    【解决方案2】:

    从 PowerShell 调用时,您是否“点”了对“node”的调用?

    .\node -e "console.log('hello')" >test2.txt
    

    这对我有用。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,在将头撞到墙上后,我卸载了 32 位节点(从我的 64 位机器上)并安装了 64 位节点。现在我在我的 Powershell 脚本中获得了 Node 输出。 不知道是重装解决了,还是64位vs 32位解决了。

      【讨论】:

        猜你喜欢
        • 2021-12-13
        • 2015-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-07
        相关资源
        最近更新 更多