金宏和實 Writer's Page
日経ソフトウエア誌を中心にライター活動をしている金宏和實の雑記帳のようなページです。

Jamp to Navigation


金宏和實 Writer's Page

Programming

CakePHP 1.3 の勉強中

PHPのフレームワークCakePHP1.3を勉強しています。開始直後は五十の手習いという感じもありましたが、ruby on railsを勉強したときの記憶も少しずつ蘇ってきました。難しい例から始めず、CakePHPブログチュートリアルから素直に勉強するのがよいと思います。
ただし、日本語の解説がバージョン1.3に追いついていないところもあり、初めて勉強する場合は戸惑うこともあります。
たとえば、1.2まで削除は$this->Post->del($id);だったようですが、1.3からは$this->Post->delete($id);です。
チュートリアルは更新され続けているようですが、英文に比べると遅いので、こっちも参考にした方が良さそうです。

Comment(0) Permalink

PowerShell2.0とタスクスケジューラの簡単な使い方

サーバー機に限らず,ハードディスク上のデータを夜間や昼休みに勝手にバックアップしてほしいというニーズはある。それにはスクリプトを書いて,自動実行させればよい。Linuxならcronで簡単に実現できる。Windowsだと,WSH(Windows Script Host)をタスクスケジューラで実行する方法とPowerShellをタスクスケジューラで実行する方法がある。
PowerShellの方が新しく,多機能なので今回はPowerShell2.0を使ってみる。
PowerShellのスクリプトファイルをタスクスケジューラで自動実行するには,いくつかの手順を踏まなくてはならない。

【PowerShellのダウンロードとインストール】
PowerShellを標準でサポートしていないOSの場合,次のサイトから,ダウンロードのリンクをたどり,
http://technet.microsoft.com/ja-jp/scriptcenter/powershell.aspx
Windows 管理フレームワークのコア (WinRM 2. 0 および Windows PowerShell 2. 0)の項から,自分のOSにあったパッケージをダウンロードする。インストールはダウンロードしたファイルを実行するだけでよい。
インストールが成功すると,アクセサリにメニューが追加される。
アクセサリ
Windows PowerShellを選ぶと,対話的にコマンドを実行でき,Windows PowerShell ISEを選ぶと,スクリプトファイルを作成できる。

【スクリプトの実行ポリシーを変更する】
PowerShellのスクリプトの実行ポリシーには以下の4種類がある。
========================================
Restricted :すべてのスクリプトを実行不可
AllSigned:すべてのスクリプトに証明書を要求
RemoteSigned:インターネット経由でダウンロードしたスクリプトのみ証明書を要求
Unrestricted:すべてのスクリプト実行を許可
========================================
ネットからダウンロードした出所のわからないスクリプトを誤って実行しないように,デフォルトがRestrictedになっている。つまり,初期状態では,スクリプトファイルは実行できない。
実行ポリシーをWindows PowerShellから変更する必要がある。
ポリシーの選択
Set-ExecutionPolicyコマンド(コマンドレット)でRemoteSignedに変更する。
設定されているポリシーはGet-ExecutionPolicyで取得できる。
これで,自分が作成したスクリプトはそのまま実行できるようになる。
また,PowerShellでもLinux同様に,入力の補完機能が使える。たとえば,Get-Execまで打ち込んで,タブキーを押すとGet-ExecutionPolicyと補完される。
それから,PowerShellのコマンドレットは,動詞-名詞という形式になっているので,慣れてくると推測して入力できるようになるはずである。

【ISEでスクリプトファイルを作成する】
それでは,ISEを起動し,スクリプトファイルを作成していこう。
ISE
PowerShellの各コマンドレットや文法を解説してれいると長くなるので,丁寧な説明は割愛する。前述のマイクロソフトのページなどを参考にしてほしい。
#で始まる行はコメント行である。ファイルやディレクトリのコピーには,Copy-Itemを使う。画面の例では,c:\testParentフォルダ以下をf:\backupフォルダ以下にコピーする。オプションとして,-Recurseを設定することで,子フォルダの内容もコピーする。
ISEからは実行ボタンをクリックするか,F5キーを押下することで,スクリプトファイルを実行することができる。ファイルを保存したら,次のステップに進もう。

【タスクを作成する】
アクセサリ−システムツール−タスクとメニューをたどり,タスクを新規作成する。もちろん,「スケジュールされたタスクの追加」を選び,ウィザード形式でタスクを作成してもよい。
実行するファイル名
実行するファイル名に,作成したスクリプトファイルを指定した。実はこれは間違いである。
解説はマイクロソフトのScripting Guysさんのページに詳しいのだが,実行するのはpowershell.exeというプログラムであり,powershell.exeに作成したスクリプトの処理をお願いするのだ。
そこで,powershell.exe C:\PowScript\backup1.ps1と実行するファイル名に入力する。適用ボタンをクリックすると,powershell.exeのフルパスを補完してくれる。
powershell.exe
実行するアカウント名のパスワードも設定しておこう。
スケジュールの設定
次がスケジュールの設定だ。間隔と実行する時間を指定できる。サンプルの設定は「毎日,18:25に実行する」だ。

これで自動バックアップの設定ができた。こんな簡単な処理なら,PowerShellでスクリプトファイルを作成する必要などないと思われるかもしれないが,PowerShellを使っておけば,一部のファイルを除くとか一部のファイルだけをバックアップするとか,必要に応じて詳細な指定が可能になる。

Comment(0) Permalink

夏休みも終わりますね

もう,夏休みもおわりますね。
私の夏休みの宿題はAndroidとeZ Publishのようでしたが(実際には休みなんてないのですが),なんかやっつけ仕事になった感があります。eZ Publishの方ですが。
秋はAdobe AIRで実りのある提案などしたいですね。どうも,盛り上がりません。ニーズがないのか,種まき不足なのか。

Comment(0) Permalink

VB2008

Form.ShowDialog()で二回以上開くと,MaskedTextBoxのPromptCharが消える

Comment(0) Permalink

Zend Framework

ただいま,Zend Frameworkについて勉強中です。なかなか規則に慣れません。
あれっ,Twitterのつぶやきみたいだ。

Comment(0) Permalink