
FileMakerのスクリプトステップ Event を 送信 を使って コマンドプロンプト を使ってみる!
こんにちは。solb system の Teruhiro Kömaki です。
つい先日、ランサーズから「直接仕事依頼を受けました」という内容のメールを受信しまして、なにかと思ったら確認したところ、
本当に依頼(自社で作成したベースのファイルを修正してほしい。)を受けていたようで、ランサーズのシステムを少し触ってみようと思います。。
最近は、ランサーズとかクラウドワークスとか、いろんな意味で流行ってますが。
個人的には、ランサーズやクラウドワークスで仕事を受けている人のスキル(FileMakerに限りますけども)は、どちらかと言えば微妙な空気がしてます。
というのも、以前、FileMakerのデベロッパーさん?らしき人から
「お客様から『ローカルでFileMakerをDBとして使い、PHPでカスタムWeb公開をしたい。』と依頼をうけたが、分からないので教えて欲しい。」という依頼を受けたことがあるからです。
しかも「導入部分をやってもらい、関連知識を2時間ほどレクチャーして頂ければ大丈夫です。」という言葉が返ったきたので、正直ビックリしました。
「自信があるんだったら自分で調べればいいのに」と心でつぶやいてしまいました。
LAN側やWAN側のネットワーク関連やルーター周り、Windows IIS、HTMLやCSSの話など、ほぼ理解していないにも関わらず、セキュリティ(PHPのコードの脆弱性など)を気にしていたので、怖くて辞退しましたが、デベロッパーと名乗る人も十人十色なので、ちゃんとした人に頼んだ方がいいですよって話です。
申し訳ないですが、ランサーズから仕事を受けることはあっても、依頼することは絶対にないですね。
さて、そんなこんなありながら、本題に戻しまして。。。
“FileMakerのスクリプトステップ Event を 送信 を使って コマンドプロンプト を使ってみる!”
ってことで書いてみます。
コマンドプロンプトとは
FileMakerの話をする前に、まず、Windowsのコマンドプロンプトについて、理解する必要があります。
今では当たり前のように、マウスのクリックや画面操作によってWindowsを操作してますが、コマンドプロンプトに特定のコマンドを入力することで、
- ファイルに日付を追加して、ファイルを別のディレクトリにコピーして、 その後にファイルを削除する
- Windowsのタスクに指定して、決まった時間にコマンドを実行したり、作業を自動化する
- 拡張子の指定やワイルドカードやフィルタなどの機能を使って、検索や抽出条件を細かく指定して、大量のファイルを効率的に処理する
などの作業ができます。
マウス操作と同じことが実現できるのは当たり前ですが、マウス操作よりも早く目的の処理をすることが可能になるんです。
FileMakerに限らず、プログラムの連携時にコマンドを渡すことで、いろいろなコマンドを実行することができますので、できると少し幅が広がると思います。
ちなみに Wikipedia では、このようになっています。
コマンドプロンプト (Command Prompt) とは、コマンドインタプリタが画面上に表示する「コマンド入力待ち状態であることを表す記号」の事を言い、利用者にコマンド入力を促すものである。
単にプロンプトとも呼ぶ。Microsoft Windows NT 系列の Windows で動作する端末ウィンドウ兼シェル (cmd.exe) の名称でもある。
コマンドプロンプトでメモ帳を起動する
コマンドプロンプトでメモ帳を起動してみます。
コマンドプロンプトを起動する
- スタート
- すべてのプログラム
- アクセサリ
- コマンドプロンプト
コマンドを起動したら 【notepad】と入力し【Enter】をターンしてください。
そしたら、メモ帳が静かに起動します。
このように、コマンドプロンプトの画面に、いろいろなコマンドを入力すると楽しくなると思います。
話をFileMakerに戻します。
サンプルファイルをダウンロードします
サンプルファイルをリンクからダウンロードします。
ダウンロードページを開く
Event を 送信 スクリプトとは
どうやってFileMakerでコマンドを実行するのかというとスクリプトステップの Event を送信 を使います。
リファレンスを見れば分かります!
ちなみに FileMakerのリファレンス では、このようになっています。
目的
他のアプリケーションを起動したり、他のアプリケーションのファイルを開いたり、他のアプリケーションでファイルを印刷します。
構文
Event を送信[「」; 「<イベント名>」; 「<ファイル名>」]
説明
BASIC や C を使用してプログラムを作成してこのスクリプトステップで実行することによってスクリプトにさらに機能を追加することもできます。
メモ 計算式またはテキストを使用してファイルやアプリケーションを指定すると、ファイルのタイプやアプリケーションの名前はスクリプト定義の中では「<不明>」と表示されます。
例1
メモ帳アプリケーションを開きます。
Eventを送信 [「aevt」; 「odoc」; 「NOTEPAD.EXE」]
例2
イメージ.bmp ファイルをデフォルトのアプリケーションで開きます。
Eventを送信 [「aevt」; 「odoc」; 「イメージ.bmp」]
リファレンスの例にあるようにメモ帳を開いてみます。
FileMakerのスクリプトでメモ帳を起動する
ここでは【CommandNotepad】というスクリプトを作成します。
【Event を 送信】を設定します。
Event を 送信のオプションのテキストに【notepad】と設定し、実行します。
スクリプト【CommandNotepad】を実行すると、メモ帳が起動します。
スクリプト名:CommandNotepad |
---|
# Eventを送信 [「aevt」; 「odoc」; 「notepad」] |
これでは、少しつまらないので、デスクトップにテキストファイルを出力(生成)するスクリプトを作成してみます。
デスクトップにテキストファイルを出力(生成)する
ここでは【CommandCreate】というスクリプトを作成します。
スクリプト名:CommandCreate |
---|
#デスクトップのパスを設定 変数を設定 [ $File; 値:Get ( デスクトップパス )] 変数を設定 [ $File; 値:Middle ( $File ; 2 ; 300 )] 変数を設定 [ $File; 値:Substitute ( $File ; “/” ; “¥¥” )] #ファイル名を設定 変数を設定 [ $Filename; 値:”sample.txt”] #テキストを設定 変数を設定 [ $Text; 値:”solb system”] #実行 変数を設定 [ $Script; 値:”cmd /c echo ” & $Text & “> ” & $File & $Filename] Eventを送信 [「aevt」; 「odoc」; $Script] |
スクリプト【CommandCreate】を実行すると、デスクトップに【sample.txt】というテキストファイルが生成されます。
【sample.txt】を開くと solb system と入力されています。
おわり
やってみると楽しいので、是非ともいろいろと触ってみてください!
Windowsの場合、一般的には Event を 送信 の実行後の戻り値が取得できない(できる方法もありますが。)ので、その後の処理を続けて実行する際には、注意が必要になります。
関連リンク
- Event を送信 (Windows)
- 変数を設定
- Get ( デスクトップパス )
- cmd.exe を利用した同期バッチ処理と戻り値 | FileMakerPro Kyushu Users Meeting
FileMakerを勉強したい人へ
FileMakerをしっかりと勉強するのであれば、オフィシャルの学習用テキストが一番確実です。
体系立てて習得できるので、断片的に勉強するよりも理解もしやすいはずです。
ということで FileMaker Training Series をやるべし!
FileMaker Training Series には基礎編と応用編の2種類があります。
さらに FileMaker Training Series に近いのですが、もうひとつ別で FileMaker Drill Book というテキストがあります。
まずは、オフィシャルの学習用テキストを購入して、コツコツ勉強することが一番の近道だと思います。
- FileMaker Training Series 基礎編
- FileMaker Training Series 応用編
- FileMaker Drill Book
- FileMaker 関数スクリプト・ビギナーズガイド
少しでもお役に立てたことがあれば シェアしていただけると嬉しいです
via PressSync