node.js - Node console.log adfærd og windows stdout

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har bemærket mærkelig adfærd, når jeg forsøger at omdirigere outputformularen et node.js script i Windows. Det mindste reproducerbare eksempel på denne adfærd er som følger:


Fra Windows-konsollen (cmd.exe):


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


Fra Powershell:


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


Det vil sige, det går ud uden at skrive noget til konsollen.


Dette er et problem, fordi når jeg forsøger at omdirigere output til en fil, er der ikke skrevet noget, f.eks


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


Opretter en tom fil med navnet temp.txt.


Er der noget om, hvordan noden skriver console.out til stdio?

Bedste reference


Det ser ud til, at problemet ligger i parentesen.


Prøv dette:


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


Med hensyn til omdirigering er der ingen grund til, at dette ikke burde virke. Du kan også forsøge at pibe det til Out-File temp.txt.

Andre referencer 1


Har du 'dot' dit opkald til 'node', når du ringer fra PowerShell?


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


Dette virker for mig.

Andre referencer 2


Jeg havde det samme problem, og efter at jeg har slået mit hoved mod væggen, installerede jeg 32-bits knudepunkt (fra min 64-bit-maskine) og installerede 64-bit knudepunkt. Nu får jeg Node output i mine Powershell scripts.
Ved ikke om det blev fastsat ved geninstallationen eller 64- vs 32-bitness.