バッチ・モードでのターミナルの使用法
一部のオペレーティング・システムでは、コマンド行 (DOS ウィンドウなど) からターミナルを実行できます。この章の構成は、以下のとおりです。
Windows でのエスケープ文字
Microsoft Windows ではバージョンによって、キャレット文字 (^) とパーセント文字 (%) の解釈が異なります。また、テキストの特定行を “バッチ” ウィンドウ (DOS プロンプト) に入力したか、バッチ・スクリプトの入力として追加したかによっても、テキストの特定行の解釈が異なります。
以下の行を異なるオペレーティング・システムで記述するために必要な入力シーケンスの相違を、この後の表に示します。
cterm /console=cn_ap:cache[USER]:^%D
オペレーティング・システム | 環境 | ルール | 入力シーケンス |
---|---|---|---|
Windows 7 | DOS プロンプト | エスケープ不要 | cterm /console=cn_ap:cache[USER]:^%D |
Windows NT、Windows 2000、Windows XP | DOS プロンプト | 二重キャレット (^) 文字 | cterm /console=cn_ap:cache[USER]:^^%D |
Windows 7、Windows NT、Windows 2000、Windows XP | バッチ・ファイル | 二重キャレット (^) 文字
二重パーセント (%) 文字 |
cterm /console=cn_ap:cache[USER]:^^%%D |
Windows 9x、Windows ME | DOS プロンプトまたはバッチ・ファイル | 二重パーセント (%) 文字 | cterm /console=cn_ap:cache[USER]:^%%D |
その他のオペレーティング・システムについては、関連オペレーティング・システムのドキュメントを参照してください。
バッチ・コマンド行
DOS のコマンド行 (正確に言えば、cmd.exe) からターミナルを起動することができます。コマンド行の一般的な形式は次のとおりです。
cterm Arg1 Arg2 ... ArgN ScriptFilePath
以下はその説明です。
アイテム | 意味 |
---|---|
cterm | ターミナル・アプリケーションを起動します。Windows 環境変数の PATH に Caché バイナリの場所が設定されている場合は、コマンド名 cterm または cterm.exe を使用します。それ以外の場合は、完全なパス名または部分的なパス名を使用する必要があります。Caché の既定のインストールでのバイナリの場所は、install-dir\Bin ディレクトリです。 |
Arg1 ...ArgN | 制御引数 (次のセクションで説明します)。 |
ScriptFilePath | スクリプト・ファイルの保存場所。 |
制御引数
ターミナル・セッションの開始環境を制御する引数は数種類あります。これらのいくつかは内部用に予約されているため、ここでは説明しません。最も有用な引数は以下のとおりです。
/console=<ConnectString>
この引数では、接続のタイプと、接続に必要なその他のデータの両方を指定します。接続タイプは、TELNET 接続とローカル・コンソール・アプリケーションへの接続の 2 つです。
/console および /server 引数は両方とも指定できません。
/console=cn_iptcp:<HostAddr>
この引数は、ターミナルが TELNET 接続を介してやり取りするターゲット・システムを指定します。これは、ローカル・マシン上でスクリプトを実行するのに便利です。この場合は、HostAddr にローカル・マシンの IP アドレスとポートを指定します。次に例を示します。
cterm /console=cn_iptcp:127.0.0.1[23]
/console=cn_ap:<Instance>[<Namespace>]
ターミナル・プロンプトを開くことができます。以下はその例です。
cterm /console=cn_ap:cache[USER]
この行により、ターミナル・セッションが開始され、特定のネームスペースに切り替えられます。
この場合、インスタンス名は cache で、ネームスペース名は USER となります。
ネームスペース名はオプションです。ネームスペース名を指定しない場合は、既定のネームスペースが使用されます。
/console=cn_ap:<Instance>[<Namespace>]:<Routine>
バッチ・ファイルからルーチンを実行することもできます。例えば、Windows 7 で使用されるバッチ・ファイル (.bat) に、以下の行が記述されているとします。
cterm /console=cn_ap:cache[USER]:^^%%D
この行により、(未実行の場合) 指定されたインスタンスが開始され、ターミナル・セッションが開かれた後に、指定されたネームスペースへ切り替わり、指定されたルーチンが実行されます。ルーチンが終了したら、ターミナル・セッションは閉じます。
この場合、インスタンス名は cache で、ネームスペース名は USER となります。ルーチン名は ^%D (現在の日付を出力する) となります。この章で前述した “Windows でのエスケープ文字” をお読みください。
ネームスペース名はオプションです。ネームスペース名を指定しない場合は、既定のネームスペースが使用されます。
/server=<ServerName>
この引数は、このターミナル・セッションと指定されたサーバ間での安全な接続に使用するサーバの名前を指定します。
cterm /server=ServerName
ServerName には Caché サーバを指定します。使用できるサーバのリストを確認するには、[InterSystems ランチャー] を選択してから、[優先接続サーバ] を選択します。サーバのリストが表示されます。
UNIX 以外のプラットフォームでは、以下を確認してください。
-
所望のサーバにおいて、Telnet サービス (%Service_Telnet) が有効であること。(既定ではこのサービスが有効ではないことに注意してください。)
詳細は、"Caché セキュリティ管理ガイド" の “サービス” を参照してください。
-
サーバが起動していること。
UNIX® では、サーバが起動している必要はありませんが、Caché に直接ではなく、シェルにログインすることになります。
/console および /server 引数は両方ともに指定できません。
/size=RowsxCols
この引数は、ターミナル画面の初期サイズを行数と列数で指定します。Rows と Cols はどちらも必ず符号なし整数で指定します。行数と列数の間に入る x は上記のとおりに挿入する必要があります。この制御引数ではスペースは使用できません。
Rows および Cols は次の範囲で指定します。
-
5 <= Rows <= 64
-
20 <= Cols <= 132
/pos=(X,Y)
この引数は、ディスプレイ・デバイス・ウィンドウに表示されるターミナル画面の初期原点をピクセル単位で指定します。X と Y はどちらも必ず符号なし整数で指定します。X と Y を囲む括弧、およびこれらを区切るコンマは省略できません。この制御引数ではスペースは使用できません。
ディスプレイ・デバイスのサイズよりも大きな値を X と Y に指定すると、表示領域の外側にウィンドウを配置することができます。
/ppos=(Xpct,Ypct)
この引数は、ディスプレイ・デバイス・ウィンドウに表示されるターミナル画面の原点の初期値を表示領域のパーセンテージで指定します。Xpct と Ypct はどちらも必ず符号なし整数で指定します。X と Y を囲む括弧、およびこれらを区切るコンマは省略できません。この制御引数ではスペースは使用できません。
XPct および Ypct は次の範囲で指定します。
-
0 <= Xpct <= 40
-
0 <= Ypct <= 40
つまり、ウィンドウの原点はデバイス原点の上と左側には配置できません。ディスプレイ・デバイスの 40% よりも下または右側にも配置できません。
/UnbufferedLogging
この引数により、ログがアクティブである場合は、バッファされる代わりに、ログ・ファイルに出力が直ちに書き込まれます。 これは、別のプロセスがログ・ファイルの出力を検査しているときに便利です。
例
このセクションでは、このドキュメントで前述したスクリプト例を使用して、それを実行する 2 つの方法を示します。
バッチ・モードでのスクリプトの実行
この例では、基本的なデバッグ・ルーチンの ^%STACK を使用して、現在のユーザおよびターミナル・プロセスに関する情報を表示する例を紹介します。スクリプト・コマンドの格納場所が C:\TestScript.scr である場合は、次のサンプル・コマンドを DOS コマンド・ウィンドウに入力して実行できます。
C:\CacheSys\Bin\cterm.exe /console=cn_iptcp:127.0.0.1[23] C:\TestScript.scr
スクリプトのインタラクティブな実行
前述のルーチンはターミナル・セッションで、次のように呼び出すことができます。
C:\CacheSys\Bin\cterm.exe /console=cn_ap:cache[USER]:^^%STACK
前の例でスクリプトが行っているレスポンスを手動で提供できます。Enter キーを押して Stack Display Action: プロンプトに応答すると、ターミナル・ウィンドウが閉じます。