mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-11-17 15:43:29 -05:00
33 lines
1.1 KiB
JavaScript
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);
|
|
}
|