2014-04-22 14:33:53 +03:00

33 lines
1.1 KiB
JavaScript

// Syntax: cscript searchReplace.js searchRegex replaceText file1 file2 file3 ...
// Example: cscript searchReplace.js Thursday Friday weatherReport.txt
function readText(filename) {
var fso = WSH.CreateObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile(filename, 1 /* readonly */);
var txt = file.ReadAll();
file.Close();
return txt;
}
function writeText(filename, text) {
var fso = WSH.CreateObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile(filename, 2 /* readwrite */, true);
file.Write(text);
file.Close();
}
var find = WScript.Arguments.Item(0),
replace = WScript.Arguments.Item(1);
// Special handling for newline chars, as I haven't found a reasonable way to pass them from DOS
if (replace === "\\n")
replace = "\n";
for (var i = 2; i < WScript.Arguments.Length; i++) {
var filename = WScript.Arguments.Item(i);
WSH.Echo("Replacing content in " + filename + "...");
var original = readText(filename);
var updated = original.replace(new RegExp(find, "g"), replace);
writeText(filename, updated);
}