Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var util = Utility();
- // settings
- var FTP_IP = "xxx.xxx.xxx.xxx";
- var FTP_USER = "username";
- var FTP_PASSWORD = "password";
- var FTP_MODE = "ascii";
- // メイン関数
- (function main(){
- var locFilename = GetFilename(); // 転送元ファイル名
- var ftpFilename = getFtpFilename(); // 転送先ファイル名
- if (ftpFilename == "") {
- util.echo("アップロード先フォルダの絶対パスがファイル内に必要です。\n" +
- "ファイルの2行目に、下記の記述を追加して下さい。\n" +
- "\n" +
- "# PATH:絶対パス\n" +
- "\n" +
- "記入例) # PATH:/home/user/");
- return;
- }
- var ret = util.question("FTP転送を行います" + "\n"
- + " FROM->\t:" + locFilename + "\n"
- + " TO->\t\t:" + ftpFilename);
- if (!ret){
- return;
- }
- ftp = myFtp(FTP_IP, FTP_USER, FTP_PASSWORD,FTP_MODE);
- ftp.upload(locFilename, ftpFilename);
- })();
- /**
- * FTP転送するファイル名を取得
- * FTP転送先のファイル名は、ファイルの2行目に
- *
- * # PATH:絶対パス
- *
- * の形式で記述されている
- */
- function getFtpFilename(){
- MARK="PATH:";
- filename = GetLineStr(2).replace("\r","").replace("\n","");
- if (filename.indexOf(MARK) > -1) {
- filename = filename.slice(filename.indexOf(MARK) + MARK.length) + "/" + ExpandParameter("$f");
- } else {
- filename = "";
- }
- return filename;
- }
- /**
- * FTP転送を行うオブジェクト
- */
- function myFtp(aHost, aUser, aPassword, aMode){
- var host = aHost;
- var user = aUser;
- var password = aPassword;
- var mode = aMode;
- var tmp = (new ActiveXObject( "WScript.Shell" )).ExpandEnvironmentStrings("%tmp%").replace(/\\/g, "/");
- var tmpFtpText = tmp + "/sakura_ftp_command.txt";
- var tmpBatText = tmp + "/sakura_ftp_bat.bat";
- return {
- upload : function(from, to){
- this._exec("put \"" + from + "\" \"" + to + "\"");
- }
- ,_exec : function(cmd1){
- var io = TextIO();
- var ws1 = io.getTextWriter(tmpFtpText);
- ws1.WriteLine("open " + host);
- ws1.WriteLine(user);
- ws1.WriteLine(password);
- ws1.WriteLine(mode);
- ws1.WriteLine(cmd1);
- ws1.WriteLine("quit");
- ws1.close();
- var ws2 = io.getTextWriter(tmpBatText);
- ws2.WriteLine("ftp -s:" + "\"" + tmpFtpText + "\"");
- ws2.WriteLine("pause");
- ws2.close();
- util.run(tmpBatText);
- }
- };
- }
- /**
- * ファイルの読み書きを行う
- */
- function TextIO(){
- var fso = new ActiveXObject("Scripting.FilesystemObject");
- var ForWriting = 2; // ファイルを書き込み専用として開きます。
- var ForAppending = 8; // ファイルを開き、ファイルの最後に追加して書き込みます。
- return {
- getTextWriter : function(file){
- if (fso.FileExists(file)){
- fso.DeleteFile(file);
- }
- return fso.OpenTextFile(file, 2, true);
- }
- }
- }
- /**
- * ユーティリティー関数群
- */
- function Utility(){
- var shell = new ActiveXObject("WScript.Shell");
- var macroname = ExpandParameter("$M");
- return {
- echo: function(str){
- shell.popup(str);
- },
- question : function(str){
- var ret = shell.popup(str,0,macroname,1);
- return ret == 1 ? true : false;
- },
- run : function(exe){
- return shell.Run(exe);
- },
- getExt: function(filename){
- ext = ExpandParameter(filename);
- ext = ext.substring(ext.lastIndexOf(".") + 1);
- return ext;
- }
- }
- };
Add Comment
Please, Sign In to add comment