2009-03-26 15 views
11

mam próbuje uruchomić skrypt z linii poleceń okna za pomocą skryptuokna wiersza poleceń javascript

cscript // nologo test.js

Jednak nie mogę znaleźć żadnych predefiniowanych obiektów, które są dostępny. Jestem całkowicie na straty - nie może pozbyć Hello World do pracy:

System.print("Hello, World!")

skutkuje "System" is undefined

Czy istnieje inny sposób I powinny być uruchomione to - jak przez .NET wykonywania?

Dzięki

Jeff

Odpowiedz

17

Używasz Windows Scripting Host.

Można powiedzieć takie rzeczy jak:

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

To wszystko jest oparta na modelu COM, więc wystąpienia formantów ActiveX do niczego przydatne:

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

czyli

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

Spróbuj WScript:

WScript.Echo('hello world'); 
3

To jest faktycznie JScript i uruchamiany z cscript lub wscript, jest w środowisku Windows Scripting Host, które nie ma rzeczywistego podobieństwa do javascript opartego na sieci WWW.

Windows Scripting Host reference

6

Jeśli naprawdę chcesz uruchomić JavaScript w powłoce, to należy rozważyć zainstalowanie node.js

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

+0

To takie zabawne. .. to pytanie zostało zadane, zanim NodeJS było czymś. : ") Nie miałem pojęcia, o czym mówi zaakceptowana odpowiedź, dopóki nie zobaczyłem daty. Jak zmieniają się czasy ... – Alhadis

0

Jest to bardzo przestarzały wątek, wiele odpowiedzi są niepełne i/lub po prostu nie działają. Sposobem uruchomienia JS w powłoce (niezależnie od tego, czy korzystasz z systemu Windows, czy nie), jest użycie Node.js. Po zainstalowaniu węzła używać go z linii poleceń, tak:

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

lub z pliku:

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

$ ./hello.js 
Hello, world 

Albo od węzła samego:

$ node hello.js 
Hello, world