概要
ColdFusion 2016 には、ColdFusion サーバーを起動することなく、開発者が cfm スクリプトを実行するための新しいコマンドラインインターフェイス(CLI)があります。
cf.bat を使用して、CLI から cfm スクリプトを実行できます。cfm ファイルは、wwwroot または別の場所に配置できます。
ColdFusion の開発者は、次のものを用いてスクリプトを作成できます。
- レポート、ログ、アーカイブなどのファイル操作。
- 監視、デバッグなどのデータベース操作。
- エラーログやスレッドダンプをシステム管理者に電子メール送信するなどのネットワーク操作。
実行
開発者は、実行する cfm スクリプトにコマンドラインからパラメーターを渡すこともできます。
パス
CFM へのパスは、絶対パスまたは相対パスを指定できます。絶対パスを指定すると、cfm のディレクトリが wwwroot として設定されます。相対パスを指定すると、現在の作業ディレクトリが wwwroot として設定されます。
引数
実行する cfm にコマンドラインから位置引数と名前付き引数を渡すことができます。
CLI は、次のメソッドで引数を読み込むことができます。
- cli.getArgs() - すべての引数を取得します。
- cli.getNamedArgs() - すべての名前付き引数を取得します。
- cli.getUnnamedArgs() - 名前付き引数ではないすべての引数を CFML 配列として返します。指定がない場合は空の配列を返します。
- cli.getArg(int index) - インデックス位置の引数を取得します。
- cli.getNamedArg(String argName) - argName という名前付き引数の値を取得します。
例
cf.bat test.cfm 10 20 foo=bar
cli.getArg(1) returns 10
cli.getArg(2) returns 20
cli.getNamedArg("foo") returns bar
カスタムディレクトリ
CLI で、cfm の実行時に outputdir と logdir を設定できます。デフォルトでは、クラスとログはどちらも temp フォルダーに作成されます。
使用方法:
cf.bat cliscript.cfm –outputdir=c:\cfclasses –logdir=c:\logs
Application.cfc
Application.cfc の検索は、wwwroot によって異なります。wwwroot は、cfm のパス(絶対または相対)に従って設定されます。Application.cfc では、onApplicationStart()、onApplicationStop() および onError() メソッドのみがサポートされています。CLI では、セッションメソッドおよびリクエストメソッドはサポートされていません。
スコープ
CLI は、次のスコープをサポートしています。
- application
- argument
- request
- this
コマンドラインでの読み込み/書き込み
CLI はさらに、stdin および stdout/stderr それぞれに対して読み込みと書き込みを行う 3 つのメソッドもサポートしています。
- cli.read() - stdin から 1 行読み込みます。
- cli.writeln(message) - メッセージ文字列を stdout に書き込みます。
- cli.writeError(errorMessage) - エラーメッセージ文字列を stderr に書き込みます。
例
readwrite.cfm <cfset CLI.writeError("This is an error message from CLI writeError!")> <cfset CLI.writeln("This is CLI write method!")>
使用方法
cf.bat readwrite.cfm >> c:\logFile.txt 2>> c:\errFile.txt
サポートしているその他の機能
CLI は、次の機能をサポートしています。
- メール
- Web サービス
- アプリケーションデータソース
その他の関数
- cli.exit(exitCode) - ステータスコードを取り、指定された終了コードで終了してコマンドプロンプトに戻ります。
サポートしていない機能
次の機能は CLI でサポートされていません。
- チャート作成
- スケジュールされたタスク
- PDF 機能
- ドキュメント
- REST
- Solr
- Flex 統合
- DotNet 統合
- WebSocket
- Image 関数
- API Manager