2009-03-26 12 views
11

estoy tratando para ejecutar JavaScript desde una línea de comandos de Windows a través de scriptventanas Javascript

cscript // NoLogo Test.js

Sin embargo, no puedo encontrar ningún objeto predefinidas que están disponible. Estoy totalmente en una pérdida - no puede conseguir hola mundo para trabajar:

System.print("Hello, World!")

resultados en "System" is undefined

¿Hay otra manera que debería estar corriendo este - al igual que a través de tiempo de ejecución .NET?

Gracias

Jeff

Respuesta

17

Está utilizando el Windows Scripting Host.

Puede decir cosas como:

WScript.Echo("Hello, World."); 

Es todo, por lo que se ejemplariza controles ActiveX para hacer algo útil basada en COM:

var y = new ActiveXObject("Scripting.Dictionary"); 
y.add ("a", "test"); 
if (y.Exists("a")) 
    WScript.Echo("true"); 

O:

var fso, f1; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
// Get a File object to query. 
f1 = fso.GetFile("c:\\detlog.txt"); 
// Print information. 
Response.Write("File last modified: " + f1.DateLastModified); 

Ver Windows Script Host.

3

Trate WScript:

WScript.Echo('hello world'); 
3

Eso es en realidad JScript y cuando se ejecuta con cscript o wscript, está en el entorno de Windows Scripting Host, que no tiene ninguna similitud real con javascript basado en web.

Windows Scripting Host reference

6

Si realmente desea ejecutar JavaScript en una concha, entonces debería considerar la instalación de Node.js

http://javascript.cs.lmu.edu/notes/commandlinejs/

+0

Es muy divertido. .. esta pregunta se hizo antes de que NodeJS fuera siquiera una cosa. : ') No tenía idea de qué estaba hablando la respuesta aceptada hasta que vi la fecha. Cómo cambian los tiempos ... – Alhadis

0

Este es un hilo muy anticuado, muchas de las respuestas son incompletas y/o simplemente no funciona. La forma de ejecutar JS en shell (independientemente de si está usando Windows o no), es usar Node.js. Después de haber instalado el Nodo, se utiliza desde la línea de comandos, así:

$ node 
> console.log('Hello, world'); 
Hello, world 
undefined 
> .exit 

o desde un archivo:

$ cat hello.js 
#!/usr/bin/node 
console.log('Hello, world'); 

$ ./hello.js 
Hello, world 

O del propio nodo:

$ node hello.js 
Hello, world