2009-03-26 11 views
11

che sto cercando l'esecuzione di JavaScript da una riga di comando di Windows tramite scriptfinestre riga di comando JavaScript

cscript // NoLogo test.js

Tuttavia, non riesco a trovare nessuna oggetti predefiniti che sono a disposizione. Sono totalmente in perdita - Avvio impossibile mondo ciao a lavorare:

System.print("Hello, World!")

risultati in "System" is undefined

C'è un altro modo dovrei essere in esecuzione questo - come attraverso il runtime .NET?

Grazie

Jeff

risposta

17

Si utilizza il Windows Scripting Host.

Si può dire cose come:

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

E 'tutto basato su COM, per cui si crea un'istanza di controlli ActiveX per fare qualcosa di utile:

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

Oppure:

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); 

See Windows Script Host.

3

Prova WScript:

WScript.Echo('hello world'); 
3

Questo è in realtà JScript e quando viene eseguito con cscript o wscript, è sotto l'ambiente Windows Scripting Host, che non ha alcuna somiglianza con il javascript basato sul web.

Windows Scripting Host reference

6

Se davvero si vuole eseguire JavaScript in un guscio, allora si dovrebbe prendere in considerazione l'installazione di Node.js

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

+0

E 'così divertente. .. questa domanda è stata posta prima che NodeJS fosse addirittura una cosa. : ') Non avevo idea di cosa stava parlando la risposta accettata fino a quando non ho visto la data. Come cambiano i tempi ... – Alhadis

0

Questa è una discussione molto vecchio, molte delle risposte sono incompleti e/o semplicemente non funziona. Il modo di eseguire JS nella shell (indipendentemente dal fatto che si utilizzi Windows o meno), è quello di utilizzare Node.js. Dopo aver installato il nodo, lo si utilizza da linea di comando, in questo modo:

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

o da un file:

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

$ ./hello.js 
Hello, world 

O dal nodo stesso:

$ node hello.js 
Hello, world 
Problemi correlati