welsonjs/lib/powershell.js

57 lines
1.6 KiB
JavaScript

////////////////////////////////////////////////////////////////////////
// Powershell API
///////////////////////////////////////////////////////////////////////
var SHELL = require("lib/shell");
exports.VERSIONINFO = "Powershell (powershell.js) version 0.1";
exports.global = global;
exports.require = global.require;
exports.addslashes = function(string) {
return string.replace(/\\/g, '\\\\').
replace(/\u0008/g, '\\b').
replace(/\t/g, '\\t').
replace(/\n/g, '\\n').
replace(/\f/g, '\\f').
replace(/\r/g, '\\r').
replace(/'/g, '\\\'').
replace(/"/g, '\\"');
};
exports.execScript = function(scriptName, args) {
var commandOptions = [];
commandOptions.push("powershell.exe");
commandOptions.push("-NoProfile");
commandOptions.push("-ExecutionPolicy");
commandOptions.push("ByPass");
commandOptions.push("-nologo")
commandOptions.push("-file");
commandOptions.push(scriptName + ".ps1");
if(typeof(args) !== "undefined") {
for(var i in args) {
commandOptions.push(args[i]);
}
}
return SHELL.exec(commandOptions.join(' '));
};
exports.execCommand = function(command) {
var commandOptions = [];
commandOptions.push("powershell.exe");
commandOptions.push("-NoProfile");
commandOptions.push("-ExecutionPolicy");
commandOptions.push("ByPass");
commandOptions.push("-nologo")
commandOptions.push("-Command");
commandOptions.push("\"& {");
commandOptions.push(exports.addslashes(command));
commandOptions.push("}\"");
return SHELL.exec(commandOptions.join(' '));
};