Skip to content

Instantly share code, notes, and snippets.

@grafi-tt
Last active December 26, 2015 23:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grafi-tt/f61de4fd587f9e765fed to your computer and use it in GitHub Desktop.
Save grafi-tt/f61de4fd587f9e765fed to your computer and use it in GitHub Desktop.
// Author: grafi
// License: CC0 1.0 or NYSL 0.9982
var tmp_path = WScript.ScriptFullName.replace(/\.js$/, '.tmp');
var sh = new ActiveXObject('WScript.Shell');
function write_error(msg) {
var fs = new ActiveXObject('Scripting.FileSystemObject');
var FOR_WRITING = 2;
var file = fs.OpenTextFile(tmp_path, FOR_WRITING, true);
file.WriteLine(msg);
file.Close();
fs = null;
}
function process() {
var args = WScript.Arguments;
if (args.length == 0) {
write_error("afx4vj Error: No Argument");
return 1;
}
var argi = 0;
var cmd = args(argi++);
for (var cmd_args = []; argi < args.length; cmd_args.push("'" + args(argi++).replace("'", "''") + "'"));
var cmd_out = "'" + tmp_path.replace("'", "''") + "'";
cmd = cmd.replace('@*', cmd_args.join(' '));
cmd = cmd.replace('@,', cmd_args.join(','));
cmd = cmd.match('@>') ? cmd.replace('@>', cmd_out) : cmd + ' > ' + cmd_out;
var launch_cmd = 'powershell.exe -Command "' + cmd + '"';
var ret = sh.Run(launch_cmd, 0, true);
if (ret != 0) {
write_error("Program Error: " + '"' + cmd + '"' + " returned " + ret);
}
return ret;
}
var ret = process();
sh.SendKeys('^{F6}');
WScript.Quit(ret);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment