Guest User

Untitled

a guest
Oct 4th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. var util = Utility();
  2.  
  3. // settings
  4. var FTP_IP = "xxx.xxx.xxx.xxx";
  5. var FTP_USER = "username";
  6. var FTP_PASSWORD = "password";
  7. var FTP_MODE = "ascii";
  8.  
  9. // メイン関数
  10. (function main(){
  11. var locFilename = GetFilename(); // 転送元ファイル名
  12. var ftpFilename = getFtpFilename(); // 転送先ファイル名
  13. if (ftpFilename == "") {
  14. util.echo("アップロード先フォルダの絶対パスがファイル内に必要です。\n" +
  15. "ファイルの2行目に、下記の記述を追加して下さい。\n" +
  16. "\n" +
  17. "# PATH:絶対パス\n" +
  18. "\n" +
  19. "記入例) # PATH:/home/user/");
  20. return;
  21. }
  22. var ret = util.question("FTP転送を行います" + "\n"
  23. + " FROM->\t:" + locFilename + "\n"
  24. + " TO->\t\t:" + ftpFilename);
  25. if (!ret){
  26. return;
  27. }
  28. ftp = myFtp(FTP_IP, FTP_USER, FTP_PASSWORD,FTP_MODE);
  29. ftp.upload(locFilename, ftpFilename);
  30. })();
  31.  
  32. /**
  33. * FTP転送するファイル名を取得
  34. * FTP転送先のファイル名は、ファイルの2行目に
  35. *
  36. * # PATH:絶対パス
  37. *
  38. * の形式で記述されている
  39. */
  40. function getFtpFilename(){
  41. MARK="PATH:";
  42.  
  43. filename = GetLineStr(2).replace("\r","").replace("\n","");
  44. if (filename.indexOf(MARK) > -1) {
  45. filename = filename.slice(filename.indexOf(MARK) + MARK.length) + "/" + ExpandParameter("$f");
  46. } else {
  47. filename = "";
  48. }
  49. return filename;
  50. }
  51.  
  52. /**
  53. * FTP転送を行うオブジェクト
  54. */
  55. function myFtp(aHost, aUser, aPassword, aMode){
  56. var host = aHost;
  57. var user = aUser;
  58. var password = aPassword;
  59. var mode = aMode;
  60.  
  61. var tmp = (new ActiveXObject( "WScript.Shell" )).ExpandEnvironmentStrings("%tmp%").replace(/\\/g, "/");
  62. var tmpFtpText = tmp + "/sakura_ftp_command.txt";
  63. var tmpBatText = tmp + "/sakura_ftp_bat.bat";
  64.  
  65. return {
  66. upload : function(from, to){
  67. this._exec("put \"" + from + "\" \"" + to + "\"");
  68. }
  69. ,_exec : function(cmd1){
  70. var io = TextIO();
  71. var ws1 = io.getTextWriter(tmpFtpText);
  72. ws1.WriteLine("open " + host);
  73. ws1.WriteLine(user);
  74. ws1.WriteLine(password);
  75. ws1.WriteLine(mode);
  76. ws1.WriteLine(cmd1);
  77. ws1.WriteLine("quit");
  78. ws1.close();
  79. var ws2 = io.getTextWriter(tmpBatText);
  80. ws2.WriteLine("ftp -s:" + "\"" + tmpFtpText + "\"");
  81. ws2.WriteLine("pause");
  82. ws2.close();
  83. util.run(tmpBatText);
  84. }
  85. };
  86. }
  87.  
  88. /**
  89. * ファイルの読み書きを行う
  90. */
  91. function TextIO(){
  92. var fso = new ActiveXObject("Scripting.FilesystemObject");
  93. var ForWriting = 2; // ファイルを書き込み専用として開きます。
  94. var ForAppending = 8; // ファイルを開き、ファイルの最後に追加して書き込みます。
  95.  
  96. return {
  97. getTextWriter : function(file){
  98. if (fso.FileExists(file)){
  99. fso.DeleteFile(file);
  100. }
  101. return fso.OpenTextFile(file, 2, true);
  102. }
  103. }
  104. }
  105.  
  106. /**
  107. * ユーティリティー関数群
  108. */
  109. function Utility(){
  110. var shell = new ActiveXObject("WScript.Shell");
  111. var macroname = ExpandParameter("$M");
  112. return {
  113. echo: function(str){
  114. shell.popup(str);
  115. },
  116. question : function(str){
  117. var ret = shell.popup(str,0,macroname,1);
  118. return ret == 1 ? true : false;
  119. },
  120. run : function(exe){
  121. return shell.Run(exe);
  122. },
  123. getExt: function(filename){
  124. ext = ExpandParameter(filename);
  125. ext = ext.substring(ext.lastIndexOf(".") + 1);
  126. return ext;
  127. }
  128. }
  129. };
Add Comment
Please, Sign In to add comment