Skip to content

Commit 5dac276

Browse files
Ildar.ShaimordanovIldar.Shaimordanov
Ildar.Shaimordanov
authored and
Ildar.Shaimordanov
committed
1 parent b924eb0 commit 5dac276

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed

JSCmd.wsf

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<?xml version="1.0" encoding="windows-1251" ?>
2+
3+
<package>
4+
<job id="JSCmd">
5+
<?job error="true" debug="true" ?>
6+
7+
<runtime>
8+
<description><![CDATA[JavaScript / JScript Command Interpreter Version 0.1 Beta
9+
Copyright (C) 2009 Ildar Shaimordanov
10+
]]></description>
11+
<named
12+
name="E"
13+
helpstring="Execute a value as a JavaScript code"
14+
type="string"
15+
required="false"
16+
/>
17+
<named
18+
name="F"
19+
helpstring="Execute a JavaScript code from the file"
20+
type="string"
21+
required="false"
22+
/>
23+
<named
24+
name="H"
25+
helpstring="Display this help"
26+
type="boolean"
27+
required="false"
28+
/>
29+
<example>
30+
Example: JSCmd.wsf /E:code
31+
Example: JSCmd.wsf /F:filename
32+
</example>
33+
</runtime>
34+
<object id="fso" progid="Scripting.FileSystemObject" />
35+
<object id="wshShell" progid="WScript.Shell" />
36+
<script language="javascript" src="js/Core.js"></script>
37+
<script language="javascript" src="js/Benchmark.js"></script>
38+
<script language="javascript" src="js/Globals.js"></script>
39+
<script language="javascript" src="js/Array.js"></script>
40+
<script language="javascript" src="js/Date.js"></script>
41+
<script language="javascript" src="js/NetIP.js"></script>
42+
<script language="javascript" src="js/win32/FileSystem.js"></script>
43+
<script language="javascript"><![CDATA[
44+
45+
var help = function()
46+
{
47+
WScript.Arguments.ShowUsage();
48+
}
49+
50+
var echo = print = function()
51+
{
52+
WScript.Echo(Array.linearize(arguments).join(' '));
53+
}
54+
55+
var quit = exit = function()
56+
{
57+
WScript.Quit(arguments[0]);
58+
}
59+
60+
var argu = [];
61+
var argn = {};
62+
63+
(function()
64+
{
65+
var unnamed = WScript.Arguments.Unnamed;
66+
for (var i = 0; i < unnamed.length; i++) {
67+
argu.push(unnamed.item(i));
68+
}
69+
70+
var named = WScript.Arguments.Named;
71+
var f = new Enumerator(named);
72+
for ( ; f.moveNext(); ) {
73+
var name = f.item();
74+
if ( name.match(/^[EFef]$/) ) {
75+
continue;
76+
}
77+
argn[name] = named.item(name);
78+
}
79+
})();
80+
81+
var script;
82+
83+
(function()
84+
{
85+
if ( ! WScript.FullName.match(/cscript/i) ) {
86+
help();
87+
exit();
88+
}
89+
90+
var named = WScript.Arguments.Named;
91+
var e = named.Exists('e');
92+
var f = named.Exists('f');
93+
94+
if ( e && ! f ) {
95+
96+
script = named.item('e');
97+
98+
} else if ( ! e && f ) {
99+
100+
var filename = named.item('f');
101+
if ( ! fso.FileExists(filename) ) {
102+
print(filename, 'not found');
103+
exit(255);
104+
}
105+
106+
filename = fso.GetAbsolutePathName(filename);
107+
var f, h;
108+
109+
h = fso.GetFile(filename);
110+
f = h.OpenAsTextStream();
111+
112+
script = f.ReadAll();
113+
114+
f.Close();
115+
116+
} else if ( e && f ) {
117+
print('You have to define both inline script or filename');
118+
exit(255);
119+
} else {
120+
help();
121+
exit();
122+
}
123+
})();
124+
125+
var e;
126+
try {
127+
eval(script);
128+
} catch (e) {
129+
ASSERT(e);
130+
}
131+
132+
]]></script>
133+
</job>
134+
</package>
135+

0 commit comments

Comments
 (0)