2012-03-23 32 views
2

我已經注意到當嘗試在Windows中重定向輸出窗體node.js腳本時出現奇怪的行爲。這種行爲的最小的可重複的例子如下:節點console.log行爲和窗口標準輸出

從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的空文件。

有沒有關於節點如何將console.out寫入stdio的內容?

回答

3

看來問題在括號中。

試試這個:

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

至於重定向,就恕我直言NE之所以這樣,不應該工作。您也可以嘗試將其連接到Out-File temp.txt

+0

啊 - 這有助於從命令行運行它的例子(謝謝!),但是我仍然在從腳本文件重定向輸出時獲取空文件,例如「node script.js> log.txt」 。這從Powershell中是空白的,但正如cmd.exe所期望的那樣。有任何想法嗎? – 2012-03-23 21:08:11

+0

你試過'Out-File'(請參閱我的答案)? – stej 2012-03-23 21:17:25

+0

我接受這個答案是因爲它在另一臺機器上運行良好。我從來沒有能夠在我的原始機器上工作,所以我懷疑我還有其他奇怪的事情發生。謝謝! – 2012-03-29 20:02:36

0

從PowerShell調用時,你是否「打」你的「節點」調用?

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

這適用於我。

0

我遇到了同樣的問題,在將我的頭撞到牆上之後,我卸載了32位節點(來自我的64位機器)並安裝了64位節點。現在我在我的Powershell腳本中獲取節點輸出。 不知道它是通過重新安裝還是64位與32位來修復的。

相關問題