# JScript User Command /O Argument Resolution

**URL:** <https://resource.dopus.com/t/jscript-user-command-o-argument-resolution/20135>\
**Category:** Help & Support\
**Created:** [February 18, 2015, 4:27am UTC](https://resource.dopus.com/t/jscript-user-command-o-argument-resolution/20135 "2015-02-18T04:27:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![aussieboykie](https://resource.dopus.com/user_avatar/resource.dopus.com/aussieboykie/32/23729_2.png) [@aussieboykie](https://resource.dopus.com/u/aussieboykie)\
**Post date:** [February 18, 2015, 4:27am UTC](https://resource.dopus.com/t/jscript-user-command-o-argument-resolution/20135/1 "2015-02-18T04:27:16Z")

</div>

When I execute the following sample test script it fails(?) as shown in the last example. Being a JScript novice it's quite possible that I'm attempting to do something against the rules.

[code]// Called by Directory Opus to initialize the script  
function OnInit(initData)  
{  
initData.name = "DeBug";  
initData.desc = "Debugging template";  
initData.copyright = "";  
initData.version = "1.0";  
initData.default\_enable = true;

var cmd = initData.AddCommand();  
cmd.name = initData.name;  
cmd.method = "OnExecScript";  
cmd.desc = initData.desc;  
cmd.label = initData.name;  
cmd.template = "a/o,b/o";  
}

// This is the where the work is done  
function OnExecScript(scriptCmdData) {  
// If there is at least one open lister then..  
// enable debugging if the Other Log panel is open  
var dbg = (DOpus.listers.count == 0) ? false:DOpus.listers.lastactive.utilpane;  
if (dbg) DOpus.output(scriptCmdData.cmdline);  
// Initialise arguments object  
var arg = {a:scriptCmdData.func.args.a, b:scriptCmdData.func.args.b};  
if (dbg) {  
DOpus.output("arguments as supplied:");  
DOpus.output("arg.a = " + arg.a);  
DOpus.output("arg.b = " + arg.b);  
}  
}[/code]  
Debug output showing the results of various argument combinations:

DeBug: Script started successfully  
DeBug: debug a="one" b="two"  
DeBug: arguments as supplied:  
DeBug: arg.a = one  
DeBug: arg.b = two  
DeBug: Script completed [as expected]

DeBug: Script started successfully  
DeBug: debug a b="two"  
DeBug: arguments as supplied:  
DeBug: arg.a = true  
DeBug: arg.b = two  
DeBug: Script completed [as expected]

DeBug: Script started successfully  
DeBug: debug b="two"  
DeBug: arguments as supplied:  
DeBug: arg.a = false  
DeBug: arg.b = two  
DeBug: Script completed [as expected]

DeBug: Script started successfully  
DeBug: debug a="" b="two"  
DeBug: arguments as supplied:  
DeBug: arg.a = undefined  
DeBug: arg.b = undefined  
DeBug: Script completed [unexpected result]

Regards, AB
