Advertisement
usamimi2323

ファイル名を受け取って[]内をEveryThingで検索する.js

Nov 10th, 2023 (edited)
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.11 KB | Source Code | 0 0
  1. //////////////////////////////////////////////////////////////////
  2. //
  3. // ファイル名を受け取って[]内をEveryThingで検索する JScript (Windows)
  4. //
  5. // [使い方]
  6. // wscript.exe <スクリプトファイル名> <ファイルパス|ファイル名>
  7. // cscript.exe <スクリプトファイル名> <ファイルパス|ファイル名>
  8. //
  9. // ・*.jsに検索したいファイルをドロップ、「送る」に登録して検索したいファイルを渡す
  10. // ・ファイル名またはフォルダ名は"[作者名] タイトル ..."、"(カテゴリ) [作者名] タイトル ..."
  11. //  みたいな感じを想定
  12. // ・EveryThingのパスを↓のeverything_pathにセット(\は\\に置き換え)
  13. //
  14. //////////////////////////////////////////////////////////////////
  15.  
  16. var everything_path = "c:\\program files\\Everything\\Everything.exe";
  17.  
  18. //////////////////////////////////////////////////////////////////
  19. String.prototype.trim = function(){return this.toString().replace(/^\s*|\s*$/g,'');}
  20. var search_word = "";
  21. var filename = WScript.Arguments.Item(0);
  22. if (filename != "")
  23. {
  24.     var r1 = filename.match(/^(.+?)\\[^\\\/]+\/.+$/);
  25.     if (r1) filename = r1[1];
  26. //  WScript.Echo(filename);
  27.    
  28.     filename = filename.substring(filename.lastIndexOf('\\') + 1);
  29.    
  30.     //[201010][KURI] IA~ズ体験~されて [RJ310000]
  31.     //[201130][テン]夏まで The Animation 上巻(No Watermark).mp4
  32.     r1 = filename.match(/.*?\[\d+\].*?\[([^\]]+)\]/);
  33.     if (!r1) r1 = filename.match(/.*?(?:\[\d+\])?.*?\[([^\]]+)\]/);
  34.     if (r1)
  35.     {
  36.         search_word = r1[1];
  37.         // [アンソロジー] or [雑誌] なら次の単語を検索ワードに設定
  38.         if (search_word == "\u30A2\u30F3\u30BD\u30ED\u30B8\u30FC"   //"アンソロジー"
  39.             || search_word == "\u96D1\u8A8C")                       //"雑誌"
  40.         {
  41.             // [雑誌] COMIC or [雑誌] コミックは飛ばして次の単語を検索ワードを設定
  42.             var r2 = filename.match(/.*?(?:\[\d+\])?.*?\[[^\]]+\] *(?:(?:COMIC|\u30B3\u30DF\u30C3\u30AF) *)?([^ ]+)/i); //"コミック"
  43.             if (r2) search_word += " " + r2[1];
  44.         }
  45.         else
  46.         {
  47. //          var authors = r[1].split(/(\&|&|×|\,|、|,|/)/g);
  48. //          var authors = search_word.split(/(\&|\uFF06|\u00D7|\,|\u3001|\uFF0C|\uFF0F)/g);
  49.  
  50. //          var x = search_word.split(/\(|\)|\u00D7|\uFF06/);       // "×" "&"
  51.             var x = search_word.split(/\(|\)|\&|\uFF06|\u00D7|\,|\u3001|\uFF0C|\uFF0F/);
  52.             var y = [];
  53. //          for (var i in x) if (x[i] != '' && x[i] != ' ') y.push(x[i]);   // filter()/grep()が無い
  54. //          search_word = y.join(" \| ");
  55.             for (var i in x)
  56.             {
  57.                 var t = x[i].trim();
  58. //              if (t.indexOf(' ')!=-1)
  59. //                  t = '<'+t+'>';
  60.                 if (t != '') y.push(t); // JScriptにはfilter()/grep()が無い
  61.             }
  62.             search_word = y.join("|");
  63.         }
  64.     }
  65.     else if (r1 = filename.match(/^(\([^\(]+\) *)*(COMIC ?)*([^ ]+).+?\..+$/))
  66.         search_word = r1[3];
  67.    
  68.     if (search_word != '')
  69.     {
  70.         var commandline = "\"" + everything_path + "\" -search \"" + search_word + "\"";
  71.         var sh = new ActiveXObject("WScript.Shell");
  72. //      sh.Run( everything_path + " -s \"" + search_word + "\"" );
  73. //  WScript.Echo(commandline);
  74.         sh.Run( commandline );
  75.         sh = null;
  76.     }
  77. }
  78.  
  79.  
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement