カクカクの北海道Uターン週記

「元」日本語教師 /「元」旧司法試験受験生によるカクカクの北海道Uターン週記

スクリプト

 今日、午前中に遂に初雪が舞い、いよいよ冬の到来である。先ほど塾(初仕事)から自転車をこいで帰って来たのだが、頬に当たる風はやはり冷たかった。
 
 塾では、非常に静かに時間が過ぎ、ちょっと驚きだった(確かに、生徒は少なかったし、試験直前ではあるが)。本来、塾とはそういうものなのだ。
 
 さて、先日導入した「MortScript」。本当はじっくりと勉強したいところなのだが、なかなかそうもいかず、相変わらずマニュアル斜め読み程度なのだが、それでもちょっとだけ分かってきた(気がしている)。
 
 例の「ダイス」ので成功を、もう少し実用的な“何か”に生かせれば、と思っていたが、今朝布団の中で思い当たった。「ファイルのコピー」である。
 
 日ごろお世話になっているアプリに、「ExecMulti」(以下EM)と「SortInchKey」(同SIK)がある(当ブログでも時々登場している)。ちょくちょく設定を変えて、[es]をより使いやすくしているのだが、これらの設定ファイル(.iniファイル)は、その都度、念のためバックアップを取ってある(このバックアップのお陰で、再構築の際も非常にスムーズに挙動を戻すことができた)。
 具体的には、以下の作業をしている。
 
*デバイスのプログラムフォルダ内「EM」及び「SIK」フォルダ内の.iniファイルを、
 甲)デバイスのマイドキュメントフォルダ内hoge(=私の名前)フォルダと、
 乙)miniSDカード内再構築用バックアップフォルダ に、それぞれをコピー
 
 このコピー作業が簡略化できれば非常にありがたい(手作業だと、急いでやっても1分程度かかるし、その間、何度もキーを操作せねばならず結構面倒)。理想としては、以下のような挙動が望ましい。
 
 1)実行すると、「コピー開始」の合図が出る
     ↓
 2)デバイスの「EM」及び「SIK」フォルダ内の.iniファイルをそれぞれコピー
     ↓
 3)コピーした2つの.iniファイルをデバイスのマイドキュメントフォルダ内hogeフォルダにペースト(上記甲)
     ↓
 4)マイドキュメントフォルダ内hogeフォルダにある.両iniファイル(今ペーストしたもの)をコピー
     ↓
 5)miniSDカード内再構築用バックアップフォルダにペースト(上記乙)
     ↓
 6)「作業完了」の合図が出る
 
 
 ↑のような大いなる?理想を胸に、「MortScript」マニュアルの該当箇所(と思しき場所)を読んでみた。
 
 コピーは比較的容易にできそう(コピー元とコピー先をフルパスで指定し、上書きを許すようにしてやればよい)。早速PWordでプチプチと以下のように記述(上記3)と4)の間に、念のため1秒ウェイトを入れた)。

Copy("\Program Files\ExecMulti\execmulti.ini","\My Documents\hoge\execmulti.ini",TRUE)
Copy("\Program Files\SortInchKey\SortInchKey.ini","\My Documents\hoge\SortInchKey.ini",TRUE)
Sleep(1000)
Copy("\My Documents\hoge\execmulti.ini","\miniSDカード\再構築用バックアップ\execmulti.ini",TRUE)
Copy("\My Documents\hoge\SortInchKey.ini","\miniSDカード\再構築用バックアップ\SortInchKey.ini",TRUE)

 
 これを実行してみると、「EM.ini」及び「SIK.ini」ファイルが、hogeフォルダにも、再構築用バックアップフォルダにもコピーされているではないか!!! うまくいったようだ。
 
 これで止めてもいいわけだが、せっかくなので、引き続き上記1)及び6)のメッセージを出すことにトライ。まずは単純な6)の方だが、これは以下を書き加えることであっさり成功。

Message(".iniファイルをコピーしました","CopyINI")

 
 残る1)の方は、何度か試行錯誤してみたがどうもうまくいかない(エラーが出る)。ま、最初のメッセージが出なくても全く問題ないし、これで十分(というよりもこんなに首尾よくいくとは思っていなかった(笑))といったんは作業終了。
 
 しばらく後、やっぱり悔しいなと(笑)、もう一度マニュアルを読んでみたら、単純なミス(ダブルクォーテーションの書き忘れ)を犯していたことに気づき、改めて記述。試してみたら、カンペキ!! 理想形である。以下が完成後の記述である。

If(Question(".iniファイルをコピーしますか?","CopyINI","YesNo"))
Copy("\Program Files\ExecMulti\execmulti.ini","\My Documents\hoge\execmulti.ini",TRUE)
Copy("\Program Files\SortInchKey\SortInchKey.ini","\My Documents\hoge\SortInchKey.ini",TRUE)
Sleep(1000)
Copy("\My Documents\hoge\execmulti.ini","\miniSDカード\再構築用バックアップ\execmulti.ini",TRUE)
Copy("\My Documents\hoge\SortInchKey.ini","\miniSDカード\再構築用バックアップ\SortInchKey.ini",TRUE)
EndIf
Message(".iniファイルをコピーしました","CopyINI")

 
 こうして完成した「Copyini.mscr」ファイルをランチャに登録して終了。やはり、確認窓と終了窓が出ると、スクリプトを書いた気がする(大笑)。実際、今回は、8行のスクリプトを書いたわけで、これは前回の4倍(笑)! 無論、恥ずかしい間違いがありそうなのだが、しかし、とりあえずはうまく動いているのでよしとしよう。
     
 
 普段から、結構頭を使っているつもりの私ではあるが、使い方がいつものそれとは大幅に異なるので、こういう作業はいい頭の体操になる。
 実現したいことはまだいくつかあるので、当分エクササイズできそうである。
  
 *そのうち更新予定の別ページもご覧下さい。