簡易アーカイブ 2016-02-10 (Wed) 22:24

X-Finder上で、スクリプトやマクロなどのテキストファイルをフォルダ毎にzipファイル(アーカイブ)で歴管理する。

◎概要

対象ファイルを選択した状態でランチャから以下の機能を呼び出して使用する。

・保存(add)
 対象ファイル名の末尾に日付・時刻を付加したファイル名でアーカイブに保存する
 test.js -> test_20150101_200000.js

・ロールバック(rollback)
 アーカイブに保存されている最新の歴で対象ファイルを置き換える
 置き換えたアーカイブ中の歴は削除される
 置き換える前に対象ファイルはアーカイブに退避される
 (誤ってロールバックしてしまった場合は手動でアーカイブから戻せる)

・履歴参照(browse)
 対象ファイルの歴を秀丸エディタ(閲覧モード)で開く
 歴が複数ある場合は入力ダイアログが出るので、番号で指定する(最新が1)

・比較(diff)
 対象ファイルとアーカイブ中の歴、またはアーカイブ中の歴同士をWinMergeで開く
 歴が複数ある場合は入力ダイアログが出るので、m,n形式で指定する
 (対象ファイルと最新の歴を指定する場合は 0,1と指定)


◎ランチャからの呼び出し

Include:JScript SimpleArchive.js /r main <パラメタ>

<パラメタ>:
 "add|rollback|browse|diff" ["<フォルダ名>"] ["<アーカイブ名>"]

<フォルダ名>:
 対象ファイルと同じ場所に、ここで指定したフォルダがあればそこにアーカイブを保存
 デフォルトは"backup"

<アーカイブ名>:
 デフォルトは"_oldversions.zip"


◎補足

※ソース中の変数 archiver、editor、diffはそれぞれ7zip、秀丸エディタ、WinMergeのパス
  (環境に合わせて変更のこと)

※歴のファイル名と混同を避けるため「_8桁の数字_6桁の数字」を含むファイル名は使用不可


SimpleArchive.js

const.js 2016-01-06 (Wed) 23:44

Jscriptの列挙定数やなんかをまとめたもの。

X-Finderのスクリプトでインクルードして使うために作成。

一気に網羅的にはまとめられないので、都度都度使うものを追加していくのだ。(´・ω・`)y-~~~

const.js 右クリックで保存

うぁ。楽さんツイートありがとうございます。
ていうか、こんな辺境のブログ見て下さったんですね。 (。・ω・)ゞ 敬礼

ファイルを逐次選択してアプリを起動するランチャ 2015-12-10 (Thu) 23:51

例えば、X-FinderからコマンドラインでWinMergeを起動するとき、比較対象のファイルが別々のフォルダにある場合、
1アクションで2つのファイル選択して渡すことができないので、ファイルを一つずつ選択できる右クリックランチャを作る。

◎概要

・2つのファイルが同一フォルダにある場合

  目的のファイルを2つ選択してランチャを実行 → WinMerge起動

・2つのファイルが別々のフォルダにある場合

  最初のファイルを選択してランチャを実行 → そのファイルのパスを環境変数に保存
  別フォルダで次のファイルを選択してランチャを実行 → 環境変数を参照してWinMerge起動

※最初のファイルを選択した状態で処理を中止する場合は、ファイルの選択を解除した状態でランチャを実行する。


◎実装

右クリックにランチャを登録

  名前:ファイル比較 (任意に変更可能。但しC_NAMEと一致させること)
  パス:Include:JScript ファイル比較.js
  動作:パスを実行


◎補足

スクリプト中の下記変数は環境に合わせて適宜変更

  E_NAME:最初のファイルのパスを保存する環境変数名
  C_NAME:右クリックに登録したランチャ名
  TOOL :WinMergeのパス

【続きを読む】

ツールフォルダと通常フォルダの判定 2015-09-20 (Sun) 22:40

var current = WScript.Env('Current');
if(current.match(/(^extra:)|(:$)/i)){
// ツールフォルダの処理
}
else{
// 通常フォルダの処理
}

でいいかな

フォルダ構成のみを反対側に構築するスクリプト 2015-03-03 (Tue) 00:43

指定したフォルダ以下の、ファイルを除いたフォルダの構成のみをコピーしようと、久しく使っていない JScriptで
勢い込んでゴリゴリ書いたのに、後から聞いたら xcopyコマンドのオプションでそんなのがあるのだそうだ。
(作る前に調べれば良かった…orz)

空のフォルダもコピーしたいので /t に加えて /e オプションも指定して使用する。

JScriptで書いてた関数の部分を xcopyを実行するように換えたらだいぶコンパクトになった。
// カレントで選択したフォルダ以下のフォルダ構成のみを反対側に構築する xcopy版

// 分割されていなければ処理しない
if(!(WScript.Env('Split') % 2)) WScript.Quit();

var shell = new ActiveXObject("WScript.Shell");
var fs = new ActiveXObject("Scripting.FileSystemObject");
var current = WScript.Env('Current');
var other = WScript.Env('Other');
var cSel = WScript.Col(WScript.Env('CurrentSelected'));
for(var i = 0; i < cSel.Count; i++){
var src = cSel.Item(i);
var dst = src.replace(current, other) + '\\';
if((!fs.FolderExists(src) || fs.FolderExists(dst))) continue;
shell.Run('xcopy /t /e "' + src + '" "' + dst + '"', 7, true);
}
注意事項
基本的にこのブログはブログ主の備忘録です。

ブログの内容にはブログ主の主観や時には正確でない情報が含まれていることもあります。書いてある内容がすべての環境にあてはまることを保証するものでもありません。
また過去の記事の情報はそれが参照された時点では既に陳腐化していることもあります。

その辺をご理解の上で当ブログ内に書いてあることを試す場合は自己責任でお願いします。

万一何らかの損害が生じても責任は持てませんのであしからず!

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文: