「Script Module」の編集履歴(バックアップ)一覧はこちら

Script Module」(2013/03/25 (月) 23:54:02) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*Paper Plane xUI Script Module >WSH のように ActiveX Scripting Host を利用してスクリプトを実行する PPx Module の試作品です。PaperPlanexUI0.40+3以降用です。0.35~0.40+2でも制限付きで使用可能です。 &html(<div style="text-align:right">配布元:<a href="http://homepage1.nifty.com/toro/slwin4.html#ppxscr" title="TORO's Software library">TORO's Software library</a></div>) *簡単な使いかたの説明 **セットアップ >PPXSCR.DLL を PPx(0.35以降) があるディレクトリ内に用意し、PPx 上で「*script スクリプトファイル名」を実行することでスクリプトを実行することができます。 **実行方法 例えば PPx のディレクトリ(%0)に "hoge.vbs", "fuga.js" というスクリプトがあるとします。 ***キーボードに直接割り付ける KC_main = { ;例えば Shift + x に割り付ける \X , *script %0hoge.vbs } ***ctrl + Enter のメニューから実行する M_Ccr = { fuga を実行 = *script %0fuga.js } 上記の例はいずれも PPc からの実行ですが、その他のモジュールからでも実行できます。動作確認をする場合は付属の "sample.vbs" を実行してみるとよいでしょう。 詳しくは付属の "PPXSCR.TXT" を参照しましょう。 **Tips ***マークしたエントリーを全て処理する VBScript で書く場合 '!*script ' マークしたエントリの名前を順番に表示する If PPx.EntryFirstMark = 0 Then PPx.Echo "マークはありません" Else Do ' ここで個別の処理を行う PPx.Echo "エントリの名前:" & PPx.EntryName If PPx.EntryNextMark = 0 then exit do Loop End If JavaScript で書く場合 //!*script // マークしたエントリの名前を順番に表示する if (PPx.EntryFirstMark == 0){ PPx.Echo('マークはありません'); } else { while(true){ // ここで個別の処理を行う PPx.Echo('エントリの名前:' + PPx.EntryName); if(PPx.EntryNextMark == 0) break; } } *Script **マークした複数のファイルの拡張子でフィルタするスクリプト [[マークした複数のファイルの拡張子でフィルタ>http://www6.atwiki.jp/ppx/pages/13.html#id_5c10cd5d]] **選択ファイルの別名バックアップをその場で作るスクリプト 例えば test.txt というファイルがあったら test_txt051012.bak というふうに日付のついたファイル名でその場にコピーします。 //!*script // back up with date. // This script is in the public domain. var date = makeDate(); if(PPx.EntryFirstMark == 0 && PPx.EntryName != null) PPx.EntryMark = 1; if(PPx.EntryFirstMark == 1){ while(true){ var dir = PPx.Extract('%1'); var entryName = PPx.EntryName; var newName = entryName.replace(/^(.*)\.(\w+)$/i, '$1_$2'); newName += date + '.bak'; var fs = new ActiveXObject('Scripting.FileSystemObject'); f = fs.GetFile(dir + '\\' + entryName); f.Copy(dir + '\\' + newName, true); // 上書き PPx.EntryMark = 0; if(PPx.EntryNextMark == 0) break; } } function makeDate(){ /* make yymmdd string */ var d = new Date(); var year = d.getFullYear().toString().substr(2,2); var month = (d.getMonth() + 1).toString(); if (month.length == 1 ) month = '0' + month; var day = d.getDate().toString(); if (day.length == 1 ) day = '0' + day; return year + month + day; } 以上をテキストエディタに貼り付け "backupWithDate.js" とでもして PPx ディレクトリに保存。 M_Ccr = { 日付付きバックアップ = *script %0backupWithDate.js } **選択ファイル名のリストを外部エディタで編集し、一気にリネームするスクリプト 実行すると、選択中エントリのレスポンスファイル(一行ごとにファイル名を書いたテキストファイル)を外部エディタで立ち上げます。そのファイルを編集し、上書き保存の後、エディタを終了すると編集内容の通りに一気にファイルをリネームします。 実行すると「Waiting...」というプロンプトが出てきますが、無視してください。スクリプトの終了後に自動的に消えます。 //!*script // This script is in the public domain. // PPc 用スクリプト。 // 選択エントリーをテキストエディタで一気にリネーム。 // // ===== 設定 ================================================= // 使用するエディタのパスを設定。パス区切りは '\\' // 例 : var editor = 'C:\\Program Files\\sakura\\sakura.exe'; // SDI のエディタじゃないと終了判定がうまく行かないかも。 // 空にしておくと PPe で編集。 var editor = 'D:\\home\\Toolz\\sakura\\sakuraW.exe'; // ============================================================ if(PPx.EntryFirstMark != 1){ PPx.Echo('マークされたエントリがありません'); PPx.Quit(); } // マークしたファイルのリストを取得 var listFile = PPx.Extract('%aFCN'); if(editor && editor != ''){ // 指定エディタで起動 var command = '%Obsq \"' + editor + '\" \"' + listFile + '\"'; PPx.Execute(command); }else{ // 指定エディタが設定されていない場合は PPe で PPx.Execute('*edit \"' + listFile + '\"'); } // ファイル操作 var fso = new ActiveXObject('Scripting.FileSystemObject'); // 編集したファイルを読む var newFileNames = []; if(fso.FileExists(listFile)){ var f = fso.OpenTextFile(listFile, 1); while(! f.AtEndOfStream){ newFileNames.push(f.ReadLine()); } f.close(); }else{ PPx.Echo('リネームデータを取得できませんでした'); PPx.Quit(); } // エントリのリネーム var dir = PPx.Extract('%1%\\'); for(var i = 0; true; i++){ var oldName = dir + PPx.EntryName; var newName = dir + newFileNames[i]; if ( newFileNames[i] && newName != oldName && fso.FileExists(oldName) && (!fso.FileExists(newName)) ){ fso.GetFile(oldName).Move(newName); }else{ if(newName != oldName){ PPx.Echo(PPx.EntryName + ' のリネームに失敗しました。\n名前の重複などを確認してください\n'+newName+'\n'+oldName); } } PPx.EntryMark = 0; if(PPx.EntryNextMark == 0) break; } PPx.Quit(); 以上をテキストエディタに貼り付け "batchRename.js" とでもして PPx ディレクトリに保存。 M_Ccr = { 外部エディタでまとめてリネーム = *script %0batchRename.js } **PPx から公開サーバーに FTP でファイルを上げるスクリプト [[qftp4ppx2.js>http://www6.atwiki.jp/ppx/?cmd=upload&act=open&pageid=19&file=qftp4ppx2.js]] -[[BASP21 DLL>http://www.hi-ho.ne.jp/babaq/basp21.html]] のインストールが必要です。 -FTPサーバーやパスワード、ローカルのディレクトリの設定などはスクリプトを直接編集します。 -参考:[[指向性メモ::2004-10-07(元になったWSHスクリプト)>http://ishikawa.arielworks.com/memo/2004/10/07/033013]] &html(<div style="text-align:right"><del>配布元:Note @ Temporary-Depot</del><ins>閉鎖</ins></div>) *参考サイト >PPx Script は、WSH と同じように ActiveX Scripting Host を利用していますので、文法や組み込み関数等は、WSH とほぼ同じです。 とあるように、WSH ( Windows Script Host ) 関連の情報はそのまま応用できます。 -[[Windows Script Host>http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsoriwindowsscripthost.asp]] -[[Windows管理者のためのWindows Script Host入門>http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_01.html]]
*Paper Plane xUI Script Module >WSH のように ActiveX Scripting Host を利用してスクリプトを実行する PPx Module の試作品です。PaperPlanexUI0.40+3以降用です。0.35~0.40+2でも制限付きで使用可能です。 &html(<div style="text-align:right">配布元:<a href="http://homepage1.nifty.com/toro/slwin4.html#ppxscr" title="TORO's Software library">TORO's Software library</a></div>) *簡単な使いかたの説明 **セットアップ >PPXSCR.DLL を PPx(0.35以降) があるディレクトリ内に用意し、PPx 上で「*script スクリプトファイル名」を実行することでスクリプトを実行することができます。 **実行方法 例えば PPx のディレクトリ(%0)に "hoge.vbs", "fuga.js" というスクリプトがあるとします。 ***キーボードに直接割り付ける KC_main = { ;例えば Shift + x に割り付ける \X , *script %0hoge.vbs } ***ctrl + Enter のメニューから実行する M_Ccr = { fuga を実行 = *script %0fuga.js } 上記の例はいずれも PPc からの実行ですが、その他のモジュールからでも実行できます。動作確認をする場合は付属の "sample.vbs" を実行してみるとよいでしょう。 詳しくは付属の "PPXSCR.TXT" を参照しましょう。 **Tips ***マークしたエントリーを全て処理する VBScript で書く場合 '!*script ' マークしたエントリの名前を順番に表示する If PPx.EntryFirstMark = 0 Then PPx.Echo "マークはありません" Else Do ' ここで個別の処理を行う PPx.Echo "エントリの名前:" & PPx.EntryName If PPx.EntryNextMark = 0 then exit do Loop End If JavaScript で書く場合 //!*script // マークしたエントリの名前を順番に表示する if (PPx.EntryFirstMark == 0){ PPx.Echo('マークはありません'); } else { while(true){ // ここで個別の処理を行う PPx.Echo('エントリの名前:' + PPx.EntryName); if(PPx.EntryNextMark == 0) break; } } *Script **マークした複数のファイルの拡張子でフィルタするスクリプト [[マークした複数のファイルの拡張子でフィルタ>http://www6.atwiki.jp/ppx/pages/13.html#id_5c10cd5d]] **選択ファイルの別名バックアップをその場で作るスクリプト 例えば test.txt というファイルがあったら test_txt051012.bak というふうに日付のついたファイル名でその場にコピーします。 //!*script // back up with date. // This script is in the public domain. var date = makeDate(); if(PPx.EntryFirstMark == 0 && PPx.EntryName != null) PPx.EntryMark = 1; if(PPx.EntryFirstMark == 1){ while(true){ var dir = PPx.Extract('%1'); var entryName = PPx.EntryName; var newName = entryName.replace(/^(.*)\.(\w+)$/i, '$1_$2'); newName += date + '.bak'; var fs = new ActiveXObject('Scripting.FileSystemObject'); f = fs.GetFile(dir + '\\' + entryName); f.Copy(dir + '\\' + newName, true); // 上書き PPx.EntryMark = 0; if(PPx.EntryNextMark == 0) break; } } function makeDate(){ /* make yymmdd string */ var d = new Date(); var year = d.getFullYear().toString().substr(2,2); var month = (d.getMonth() + 1).toString(); if (month.length == 1 ) month = '0' + month; var day = d.getDate().toString(); if (day.length == 1 ) day = '0' + day; return year + month + day; } 以上をテキストエディタに貼り付け "backupWithDate.js" とでもして PPx ディレクトリに保存。 M_Ccr = { 日付付きバックアップ = *script %0backupWithDate.js } **選択ファイル名のリストを外部エディタで編集し、一気にリネームするスクリプト 実行すると、選択中エントリのレスポンスファイル(一行ごとにファイル名を書いたテキストファイル)を外部エディタで立ち上げます。そのファイルを編集し、上書き保存の後、エディタを終了すると編集内容の通りに一気にファイルをリネームします。 実行すると「Waiting...」というプロンプトが出てきますが、無視してください。スクリプトの終了後に自動的に消えます。 //!*script // Version 1.29+3 以降用 // This script is in the public domain. // PPc 用スクリプト。 // 選択エントリーをテキストエディタで一気にリネーム。 // // ===== 設定 ================================================= // 使用するエディタのパスを設定。パス区切りは '\\' // 例 : var editor = 'C:\\Program Files\\sakura\\sakura.exe'; // SDI のエディタじゃないと終了判定がうまく行かないかも。 // 空にしておくと PPe で編集。 var editor = 'D:\\home\\Toolz\\sakura\\sakuraW.exe'; // ============================================================ if(PPx.EntryFirstMark != 1){ PPx.Echo('マークされたエントリがありません'); PPx.Quit(); } // マークしたファイルのリストを取得 var listFile = PPx.Extract('%aFCN'); if(editor && editor != ''){ // 指定エディタで起動 var command = '%Obsq \"' + editor + '\" \"' + listFile + '\"'; PPx.Execute(command); }else{ // 指定エディタが設定されていない場合は PPe で PPx.Execute('*edit \"' + listFile + '\"'); } // ファイル操作 var fso = new ActiveXObject('Scripting.FileSystemObject'); // 編集したファイルを読む var newFileNames = []; if(fso.FileExists(listFile)){ var f = fso.OpenTextFile(listFile, 1); while(! f.AtEndOfStream){ newFileNames.push(f.ReadLine()); } f.close(); }else{ PPx.Echo('リネームデータを取得できませんでした'); PPx.Quit(); } // エントリのリネーム var dir = PPx.Extract('%1%\\'); for(var i = 0; true; i++){ var oldName = dir + PPx.EntryName; var newName = dir + newFileNames[i]; if ( newFileNames[i] && newName != oldName && fso.FileExists(oldName) && (!fso.FileExists(newName)) ){ fso.GetFile(oldName).Move(newName); }else{ if(newName != oldName){ PPx.Echo(PPx.EntryName + ' のリネームに失敗しました。\n名前の重複などを確認してください\n'+newName+'\n'+oldName); } } PPx.EntryMark = 0; if(PPx.EntryFirstMark == 0) break; } PPx.Quit(); 以上をテキストエディタに貼り付け "batchRename.js" とでもして PPx ディレクトリに保存。 M_Ccr = { 外部エディタでまとめてリネーム = *script %0batchRename.js } **PPx から公開サーバーに FTP でファイルを上げるスクリプト [[qftp4ppx2.js>http://www6.atwiki.jp/ppx/?cmd=upload&act=open&pageid=19&file=qftp4ppx2.js]] -[[BASP21 DLL>http://www.hi-ho.ne.jp/babaq/basp21.html]] のインストールが必要です。 -FTPサーバーやパスワード、ローカルのディレクトリの設定などはスクリプトを直接編集します。 -参考:[[指向性メモ::2004-10-07(元になったWSHスクリプト)>http://ishikawa.arielworks.com/memo/2004/10/07/033013]] &html(<div style="text-align:right"><del>配布元:Note @ Temporary-Depot</del><ins>閉鎖</ins></div>) *参考サイト >PPx Script は、WSH と同じように ActiveX Scripting Host を利用していますので、文法や組み込み関数等は、WSH とほぼ同じです。 とあるように、WSH ( Windows Script Host ) 関連の情報はそのまま応用できます。 -[[Windows Script Host>http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsoriwindowsscripthost.asp]] -[[Windows管理者のためのWindows Script Host入門>http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_01.html]]

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー