1exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair 2exports.convertToSetCommand = convertToSetCommand 3exports.convertToSetCommands = convertToSetCommands 4 5function convertToSetCommand(key, value) { 6 var line = "" 7 key = key || "" 8 key = key.trim() 9 value = value || "" 10 value = value.trim() 11 if(key && value && value.length > 0) { 12 line = "@SET " + key + "=" + replaceDollarWithPercentPair(value) + "\r\n" 13 } 14 return line 15} 16 17function extractVariableValuePairs(declarations) { 18 var pairs = {} 19 declarations.map(function(declaration) { 20 var split = declaration.split("=") 21 pairs[split[0]]=split[1] 22 }) 23 return pairs 24} 25 26function convertToSetCommands(variableString) { 27 var variableValuePairs = extractVariableValuePairs(variableString.split(" ")) 28 var variableDeclarationsAsBatch = "" 29 Object.keys(variableValuePairs).forEach(function (key) { 30 variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key]) 31 }) 32 return variableDeclarationsAsBatch 33} 34 35function replaceDollarWithPercentPair(value) { 36 var dollarExpressions = /\$\{?([^\$@#\?\- \t{}:]+)\}?/g 37 var result = "" 38 var startIndex = 0 39 do { 40 var match = dollarExpressions.exec(value) 41 if(match) { 42 var betweenMatches = value.substring(startIndex, match.index) || "" 43 result += betweenMatches + "%" + match[1] + "%" 44 startIndex = dollarExpressions.lastIndex 45 } 46 } while (dollarExpressions.lastIndex > 0) 47 result += value.substr(startIndex) 48 return result 49} 50 51 52