Encode.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. if (WScript.arguments.length != 2) {
  6. WScript.Echo("ERROR: Invalid number of argument");
  7. WScript.Quit(-1);
  8. }
  9. var input = WScript.arguments(0);
  10. var output = WScript.arguments(1);
  11. var fso = WScript.CreateObject("Scripting.FileSystemObject");
  12. try {
  13. var f = fso.OpenTextFile(input, 1);
  14. }
  15. catch (e) {
  16. WScript.Echo("ERROR: unable to open input file " + input);
  17. WScript.Quit(-1);
  18. }
  19. var str = f.ReadAll();
  20. f.Close();
  21. if (str.length == 0) {
  22. WScript.Echo("ERROR: input file is empty");
  23. WScript.Quit(-1);
  24. }
  25. try {
  26. var out = fso.OpenTextFile(output, 2, true, 0);
  27. }
  28. catch (e) {
  29. WScript.Echo("ERROR: unable to open output file " + output);
  30. WScript.Quit(-1);
  31. }
  32. function writeChar(c) {
  33. var line = false;
  34. if (c == "\\") {
  35. c = "\\\\";
  36. } else if (c == "'" || c == "\"") {
  37. c = "\\" + c;
  38. } else if (c == "\r") {
  39. c = "\\r";
  40. } else if (c == "\n") {
  41. c = "\\n";
  42. line = true;
  43. }
  44. out.Write("L'" + c + "'");
  45. out.Write(",");
  46. if (line) {
  47. out.WriteLine("");
  48. }
  49. }
  50. for (var i = 0; i < str.length; i++) {
  51. writeChar(str.charAt(i));
  52. }
  53. out.Close();