※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

タブファイラー・X-Finder [ x ] Part19 / 690

686 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/05/01(土) 01:19:21 ID:PC+CLRkq0
要望投票したんですが、「↓を参考にすればスクリプトで可能かも・・・」との作者のつぶやきを読み、
自分でも考えてはみたんですがよくわかりませんでした。

ttp://technet.microsoft.com/ja-jp/scriptcenter/ff191274.aspx

選択した複数のjpgファイルのコメントに「(;´Д`)ハァハァ」って値を書き込むスクリプトを書いてみたいんですが、
どう記述したらいいのでしょうか・・・
誰かエロい人、お願いしますっ

690 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/05/01(土) 03:26:55 ID:uVw6Qo8N0
>>686
こんなかな
とりあえず WinXP 32bit SP3+X-Finder 11-6-44 でいけた感じ
dsofile.dllはインストしておいて

var colCurSelected = WScript.Col(WScript.Env("CurrentSelected"));
var fs = new ActiveXObject("Scripting.FileSystemObject");
var objDSO = new ActiveXObject("DSOFile.OleDocumentProperties");
for(var i=0; i<colCurSelected.Count; i++)
{
  if(fs.GetExtensionName(colCurSelected.item(i)).toLowerCase() == "jpg")
  {
    objDSO.Open(colCurSelected.item(i));
    objDSO.SummaryProperties.Comments = "(;´Д`)ハァハァ";
    objDSO.Save();
    objDSO.Close();
  }
}

タブファイラー・X-Finder [ x ] Part18 / 244

244 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/03/01(月) 10:42:35 ID:R+qtfFn10
Pythonのモジュール更新
あんまり目新しいとこないけど
ランチャ周りのやっつけっぷりが多少ましになった感じ
ttp://orz.myftp.biz/src/up0038.zip

タブファイラー・X-Finder [ x ] Part18 / 209

209 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/27(土) 19:39:59 ID:uGM7bhPQ0
>>197
確かにエラー出なくなってる、楽さん乙

// サムネイルサイズ縦横入れ替え
Script:JScript
var cSel = WScript.Col(WScript.Env('ImageSize'));
WScript.Env('ImageSize', cSel.Item(1) + ',' + cSel.Item(0));

キーボード派な自分としてはフォーカス移動周りがもうちょっと強くなって欲しいなとよく思う
インクリとか実質封印状態だし・・・まぁもう慣れたけど

タブファイラー・X-Finder [ x ] Part18 / 180

180 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/25(木) 18:41:52 ID:gZtenYO/0
>>174を見習って便利そうなものを貼ろうと思ったけど、ニッチなものばかりで困った
// 2画面のファイル名比較的な用途で使う。振り分けとか

Script:JScript
// ファイル名から先頭要素的な何かを取り出す
function getTopName(path, max) {
 var max;
 if(max == undefined) {
 max = 5;
}
 var paths = path.split('\\');
 var str = paths[paths.length-1];
 var arr = str.match(/(\[|\(|【).*(\]|\(|\】)/); 
 if(arr) {
 str = arr[0].replace(/\[|\]|\(|\)|【|】/g, '');
 } else {
 str = str.substr(0,max);
 }
 return str;
}
// フォーカスのファイル名で反対窓にフィルタ
str = getTopName(WScript.Env('Focused'));
//WScript.Exec(WScript.Env('DefaultSplit'));
WScript.Exec('ChangeTab:');
WScript.Open('*' + str + '*');
WScript.Exec('ChangeTab:');

タブファイラー・X-Finder [ x ] Part18 / 174

174 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/25(木) 15:47:50 ID:x/acCvHJ0
TFやiniを読み書きするコマンド類です。
ActivePython入っている人のみ。
http://orz.myftp.biz/src/up0037.zip

[できること]
  • ツールフォルダ("Extra:なんとかかんとか.ini")の読み書き
  • パスリスト(1行に1つのパスが書いてあるテキストファイル)の読み書き
  • 選択範囲をツールフォルダやパスリストに書き込む
  • 環境変数%Everything%にes.exeのパスを登録したらeverythingで検索してツールフォルダやパスリストに書き込むことも可能。

[おまけ]
  • ToggleEnv複数対応版(toggle_env)
  • 電卓(calc)

[つかいかた]
  • scriptフォルダにioutil.pyとenvutil.pyを入れる
  • おもむろにsample.iniをツールフォルダに設定
  • Everythingとes.exeを持ってる人はEverythingを起動して環境変数%Everything%にes.exeのパスを記述

175 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/25(木) 15:49:03 ID:x/acCvHJ0
おもいっきり誤植してる……
×TFやiniを読み書きするコマンド類です。
○ツールフォルダやパスリストを読み書きするコマンド類です。

タブファイラー・X-Finder [ x ] Part18 / 173

173 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/25(木) 12:51:44 ID:J3rr+RMK0
現在の ViewStyleが取れないから、環境変数使うしか無さそうなんだな。
サンプルのようにToggleEnvを書いた common.js を置いて、以下の形でもできそう。

Script:JScript
WScript.Include("common.js");
ToggleEnv('ToggleViewStyle', 'ViewStyle:4', 'ViewStyle:5');
WScript.Exec(WScript.Env('ToggleViewStyle'));

タブファイラー・X-Finder [ x ] Part18 / 143

143 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/24(水) 14:29:23 ID:uQujaxqm0
ツールフォルダ用のiniやファイルリストを
読み込んだり書き出したりするモジュールを作りました。
ttp://orz.myftp.biz/src/up0036.zip
  • 読み込みはファイル名を指定してXItemのリストを返します。
  • 書き出しはファイル名とXItemのリストを返します。
  • 環境変数も置換してくれるはず。たぶん。
指定するパス名は適宜変えてください。
%X-Finder%にscriptフォルダが置かれるように展開したら動くはず。
ActivePythonがインストールされてる人のみ。

[list2xf(ファイルリストを読み込んでiniを返す)]
Script:Python "%X-Finder%script\\util.py"
tf = read_file_list("%X-Finder%path.txt")
write_ini("%X-Finder%path.ini",tf)

[Cドライブだけ抽出]
Script:Python "%X-Finder%script\\util.py"
tf = read_ini("%X-Finder%path.ini")
filtered = [item for item in tf if item.Path.startswith("C:\\")]
write_ini("%X-Finder%path2.ini",filtered)

[ツールフォルダの結合]
Script:Python "%X-Finder%script\\util.py"
tf1 = read_ini("%X-Finder%path.ini")
tf2 = read_ini("%X-Finder%path2.ini")
write_ini("%X-Finder%path3.ini",tf1 + tf2)

タブファイラー・X-Finder [ x ] Part18 / 81

61 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/20(土) 14:49:43 ID:g9iLjUw60
ファイル名の()や_で囲まれた部分のみをコピーする事って出来ないですか?

81 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/21(日) 09:29:02 ID:nWI54aWS0
>>61
コピーってクリップボードに入れるってことでいい?

ttp://arton.hp.infoseek.co.jp/indexj.html
↑ActiveScriptRubyインストールして、以下のスクリプトを実行でいけると思う。

- - - - - - - -
Script:GlobalRubyScript
fname = File.basename(WScript.Env('Focused'),".*")
fcut = $1 if /\(([^\(^\)]+)\)/=~fname;
fcut = $1 if /_([^_]+)_/=~fname && fcut.nil?;
fcut = fname if fcut.nil?; # ()も _も無ければ ファイル名のまま
WScript.Exec(sprintf("Set:ClipBoard=%s",fcut));

タブファイラー・X-Finder [ x ] Part18 / 64

64 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/20(土) 16:19:24 ID:WIHCHlMR0
Rubyも ActiveRubyScript入れていればそれだけで普通に使えるね。ありがたい。

フォーカス位置のファイル名で先頭から半角SPで区切られた部分まででフィルタってのを書いてみた。

"XXX YYY.zip" ってファイルがあったら XXX*.* でフィルタし、すでに XXX*.*でフィルタしてたら表示しなおす。
普段 アーティスト名 SPC アルバム名.zip って感じで mp3ファイルを固めてるんで欲しかったもの。

--
Script:GlobalRubyScript
$KCODE="SJIS"

adr=WScript.Env('Address');

fpath=WScript.Env('Focused');
b = File.basename(fpath,".*")

# アドレスバーが "*.*"で終わってたら
if /\*\.\*$/=~adr
  WScript.Exec('Refresh:'); #カレントを開きなおして終了
else
  if /^([^\s]*)\s.*/=~b
    matchfirst=$1; #先頭から 半角SP以外の文字を切り出し
  else
   matchfirst=b.split(//s).first; #半角SPがなかったら最初の1文字
  end
  WScript.Open(matchfirst + '*.*');
end

タブファイラー・X-Finder [ x ] Part18 / 32

32 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/19(金) 10:38:26 ID:/h1Vq+I90
なんかわからんけど動いたから載せとく

//フォルダを参照して新規タブ

Script:JScript
var Shell = WScript.CreateObject("Shell.Application");
var objFolder = Shell.BrowseForFolder(0, "新規タブで開くフォルダを選択して下さい。", 0, "");
if(!objFolder) {
   WScript.Quit();
}
strPath = objFolder.Items().Item().Path;
WScript.Open (strPath , true);

タブファイラー・X-Finder [ x ] Part18 / 22

22 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/18(木) 21:57:29 ID:x/cxOiVK0
>>1乙

// And でフィルタリング
Script:JScript
function andExp(str) {
  var query = "";
  var a_str = str.split(/(\s| )/); // 空白区切り
  for (var i = 0; i < a_str.length; i++) {
    query = query + "(?=.*" + a_str[i] + ")";
  }
  return "/" + query + "/i";
}
WScript.Exec('Input:"filter -X-Finder-","And検索","空白区切りで指定"');
WScript.Open(andExp(WScript.Env('InputData')));

タブファイラー・X-Finder [ x ] Part18 / 12

12 名前: [―{}@{}@{}-] 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/18(木) 13:18:45 ID:U/dCP5AaP
ネタ。twitterのタイムラインをini化して表示
ttp://dl.dropbox.com/u/215714/xfjs/twitter_tl.js

17 名前: [―{}@{}@{}-] 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/18(木) 16:21:57 ID:U/dCP5AaP
>>16
スクリプトの5行目
var user = 'hoge';
ってなってるからhogeのとこ書き換えて。

タブファイラー・X-Finder [ x ] Part17 / 985

985 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/18(木) 07:30:17 ID:0D9vGJCO0
 >>965を参考にした
// フォルダツリーのルートを現在開いているフォルダのルートにする
Script:JScript
var fs = CreateObject("Scripting.FileSystemObject");
var path = WScript.Env('Current');
WScript.Exec('Set:Tree=' + fs.GetDriveName(path) + '\\%10vri');

タブファイラー・X-Finder [ x ] Part17 / 973

973 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/17(水) 23:43:02 ID:AXw9RjIQ0
そのうち簡単に外部スクリプトファイルを読み込む機能が付きそうだけど
とりあえず現時点の機能でなるべく簡単にスクリプトファイルを使い回す方法試してみた。

環境変数 %jsut%に ttp://dl.dropbox.com/u/215714/xfjs/loader.js の内容を入れておいて、
ランチャスクリプトの先頭に
eval(WScript.Env('jsut'));
と書いておく。
んで、読み込みたい外部スクリプトファイルが%x-finder%hoge.js だとすると
eval(fileContents('%x-finder%hoge.js'));
でロードできる。

最初使い回す関数は全部環境変数に突っ込んじゃえと思って試してみたんだけど1024byte越えると
エラーになるんだよな… ファイルから読み込んだ文字列ならいくらでも行けるっぽいんだけど。

あと function loadScript( path ) { eval(fileContents( path )); } って関数を%jsut%に書いておいて
ランチャでloadScript("hoge.js")ってやってみたんだけど環境が違っちゃうみたいでうまい事動かなかった。

とりあえずリストファイル->ini変換のスクリプト書いてfileseekerを呼び出すランチャ作ってみた。
ttp://dl.dropbox.com/u/215714/xfjs/xfutil.js
ttp://dl.dropbox.com/u/215714/xfjs/fileseeker.js
上が使い回し用スクリプトで下がランチャ用。
%jsdir%にスクリプトファイルを置くフォルダのパスを設定しておいて、ランチャは
Include:JScript %jsdir%fileseeker.js
でおk

しかしなんかもう夢広がりすぎてやばい

タブファイラー・X-Finder [ x ] Part17 / 965

965 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/17(水) 22:03:50 ID:cGpyB8d/0
流れと関係ないけど、USB的な意味で環境変数展開しないで Set: するコマンドが欲しい
前によく見たタブリネーム小ネタ

// 一つ上のフォルダも表示
Script:JScript
var dirs = WScript.Env('Current').split('\\');
WScript.Exec('Set: TabName=' + dirs[dirs.length-2] + '/' +dirs[dirs.length-1]);

// ドライブ名も表示
Script:JScript
var fs = CreateObject("Scripting.FileSystemObject");
var path = WScript.Env('Current');
WScript.Exec('Set: TabName=' + fs.GetDriveName(path) + '//' + fs.GetFileName(path));

タブファイラー・X-Finder [ x ] Part17 / 943

943 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日:2010/02/17(水) 06:45:56 ID:Iuz/Uf6U0
ちょっとやってみた
ttp://www1.axfc.net/uploader/File/so/39058.zip

選択したフォルダの子フォルダ以下で空のものを探すor削除する
右クリックに登録して使うつもり
名前:適当に
パス:Include:JScript (スクリプトファイルのPath)
拡張:.folder
動作:パスに選択項目を送る
適当にフォルダを選択して右クリックから実行すると
空のフォルダを検索して新規タブでツールフォルダに表示
スクリプトファイルを開いて実際に削除するように設定したら削除
この場合はWScript.Echoで削除したフォルダパスを表示
パスの前に*が付いているのは孫フォルダ、**は曾孫(ry
初期設定は曾孫フォルダまでファイルがあるかどうか検索する
例えば、以下のようなtestフォルダを選択して実行したとき
 test - test1(ファイルなし) - test11(ファイルなし) - test111(ファイルなし)
    |
    - test2(ファイルあり) - test21(ファイルなし)
検索の場合の結果
**test1\test11\test111
*test2\test21
削除の場合以下が削除される
**test1\test11\test111
*test1\test11
test1
*test2\test21
選択したtestフォルダは対象外(削除して空になったとしても)
削除はだいじょうぶだと思うけど先ずは検索で利用してもらった方がいいかも

タブファイラー・X-Finder [ x ] Part34 / 875

870 : 名無しさん@お腹いっぱい。 :2015/01/20(火) 04:54:50.45 ID:klmMCIa10
ChooseFolder: でサブフォルダ数が画面に収まらないとき、
横に折り返す方法はありませんか?

875 : 名無しさん@お腹いっぱい。 :2015/01/21(水) 09:41:27.72 ID:shFhpH1T0
>>870 一応作ってみた。extra に menu.ini を作ってから以下を実行

Script:JScript
var fs = new ActiveXObject('Scripting.FileSystemObject');
var tTF = WScript.ToolFolder('Extra:menu.ini');
WScript.Exec('TF:Clear Extra:menu.ini',1);
cTF(WScript.Env('Focused'));
fs = null;tTF = null;
function cTF(tDir){
  var em,folder,oFolder,tFolderB,objItem,i=0;
  folder = fs.GetFolder(tDir);
  em = new Enumerator(folder.SubFolders);
  if(folder.SubFolders.Count > 0){
    for(em.moveFirst(); !em.atEnd(); em.moveNext()){
      objItem = em.item().Path;
      oFolder = fs.GetFolder(objItem);
      if (oFolder.SubFolders.Count > 0) {
        cTFI(oFolder.Name,'Menu:Open');
        cTFI(oFolder.Name,oFolder.Path);
        cTF(objItem);
        cTFI('close','Menu:Close');
      }else{
        cTFI(oFolder.Name,oFolder.Path);
      }
      i++;
      if(i % 20 == 0 && folder.SubFolders.Count > 20){
        cTFI('wrap','Wrap:');
      }
    }
  }else{
    cTFI(folder.Name,folder.Path);
  }
  em = null;folder = null;oFolder = null;objItem = null;
}
function cTFI(tName,tPath){
  var tfi;
  tfi = tTF.Add;
  tfi.Name(tName);
  tfi.Path(tPath);
  tfi.Type(0);
  tfi.Icon('-');
  tfi = null;
}

以上
|