日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 章:OpenVMS オペレーティング・システムの概要
第 2 章:DCL を使用したシステムとの会話
第 3 章:ファイル情報の格納
第 4 章:ディレクトリ・ファイルの編成
第 5 章:拡張ファイル指定
第 6 章:ディスクとテープ・ドライブの使用方法
第 7 章:Mail を使用して他のユーザと通信する
第 8 章:EVE エディタによるテキスト・ファイルの編集
第 9 章:ファイルのソートとマージ
第 10 章:資源へのアクセスの制御
第 11 章:デバイスとファイルの論理名定義
第 12 章:シンボル,コマンド,式の定義
第 13 章:コマンド・プロシージャの概要
第 14 章:DCL での拡張プログラミング
第 15 章:レキシカル関数を使用しての情報の取得と処理
第 16 章:プロセスとバッチ・ジョブ
付録 A :文字セット
付録 B :コマンド・プロシージャの例
用語集
索引
PDF
OpenVMS ホーム
OpenVMS

OpenVMS
ユーザーズ・マニュアル


目次 索引



ファイル名をパラメータとして使用するコマンド・プロシージャは, ODS-5 環境では異なった結果を生成する場合があります。

解析スタイルは TRADITIONAL から EXTENDED に変更することができます。この項では,EXTENDED に変更した場合に影響を受ける可能性のある,次の分野について説明します。

  • コマンド・プロシージャのファイル指定

  • 大文字と小文字の区別および $FILE

  • アンパサンドと一重引用符の置換

解析スタイルの切り替えについての詳細は, 第 5.3 節 を参照してください。

13.18.1 コマンド・プロシージャのファイル指定

インダイレクト・コマンド・プロシージャが使用されている場合には,一部のプロシージャの引数を引用符で囲む必要がある場合があります。

次の例は,同じコマンド・ファイル SS.COM を使用した場合の, TRADITIONAL 解析スタイルと EXTENDED 解析スタイルの出力の違いを示しています。

       $ create ss.com 
       $ if p1 .nes. "" then write sys$output "p1 = ",p1 
       $ if p2 .nes. "" then write sys$output "p2 = ",p2 
       $ if p3 .nes. "" then write sys$output "p3 = ",p3 

  • 解析スタイルを TRADITIONAL に設定し,コマンド・ファイル SS.COM を実行すると,出力は次のようになる。

           $ set process/parse_style=traditional 
           $ @ss ^ parg2 parg3 
           p1 = ^ 
           p2 = PARG2 
           p3 = PARG3 
    


    サーカンフレックス (^) は,最初の引数であり ( エスケープ文字ではない ),プロシージャ引数 p2 および p3 の大文字と小文字の区別が保存されていないことに注意してください。

  • 解析スタイルを EXTENDED に設定し,同じコマンド・プロシージャを実行すると,出力は次のようになる。

           $ set process/parse_style=extended 
           $ @ss ^ parg2 parg3 
           p1 = ^ PARG2 
           p2 = PARG3 
    


    コマンド・プロシージャでサーカンフレックス (^) が,スペースを引数の区切り文字としてではなくリテラル文字として識別するエスケープ文字として認識されている ことと,"^ PARG2" が最初の引数であることに注意してください。大文字と小文字の区別は保存されません。

  • サーカンフレックス (^) に引用符を追加すると,結果は次のようになる。

           $ @ss "^" parg2 parg3 
           p1 = ^ 
           p2 = PARG2 
           p3 = PARG3 
    


    サーカンフレックス (^) は引用文字列の中にあるため,エスケープ文字としては処理されません。

  • 引数 p3 に引用符を追加すると,結果は次のようになる。

           $ @ss "^" parg2 "parg3" 
           p1 = ^ 
           p2 = PARG2 
           p3 = parg3 
    


    プロシージャ引数 p3 の大文字と小文字の区別が保存されていることに注意してください。

  • 解析スタイルを TRADITIONAL に設定すると,次のコマンドでは サーカンフレックス (^) と,parg2 および parg3 の文字列とが,プロシージャ引数として処理され,コマンド・プロシージャを実行すると,結果は次のようになる。

           $ set process/parse_style=traditional 
           $ @ss^ parg2 parg3 
           p1 = ^ 
           p2 = PARG2 
           p3 = PARG3 
    

  • 解析スタイルを EXTENDED に設定すると, サーカンフレックス (^) は,スペースをリテラル文字として識別するエスケープ文字として処理される。 DCL は,ファイル "SS^_PARG2.COM" を探し,次の例で示されているエラーが生成される。

           $ set process/parse_style=extended 
           $ @ss^ parg2 parg3 
           -RMS-E-FNF, file not found 
    



13.18.2 大文字と小文字の区別の保存と $FILE

DCL は,ファイル指定の大文字と小文字の区別を保存しようとします。実際にファイル指定の大文字と小文字の区別が保存されるのは, Command Definition Utility (CDU) を使用して定義されたコマンドに限られます。 DCL は,$FILE 解析タイプを持つコマンド定義ファイル (.CLD) の中で定義されている項目の大文字と小文字の区別を保存します。

詳細は,『OpenVMS Command Definition, Librarian, and Message Utilities Manual』を参照してください。

13.18.3 アンパサンドと一重引用符の置換

一重引用符ではなくアンパサンド (&) による置換を使用して,従来型の解析の際に大文字と小文字の区別を保存することができます。

次の従来型の解析の例は,文字列の大文字と小文字の区別を変更する一連のコマンドを示しています。

       $ set process/parse_style=traditional 
       $ x = "string" 
       $ define y 'x' 
       $ sho log y 
          "Y" = "STRING" (LNM$PROCESS_TABLE) 
       $ define y &x 
       %DCL-I-SUPERSEDE, previous value of Y has been superseded 
       $ sho log y 
          "Y" = "string" (LNM$PROCESS_TABLE) 

アンパサンド (&) を使用することにより,変数 x に割り当てられた文字列の大文字と小文字の区別が保存されていることに注意してください。

一重引用符による置換は,コマンド行が大文字に設定される前に実行され,アンパサンドによる置換は,コマンド行が大文字に設定された後で実行されます。

次の拡張解析機能の例は,同じ一連のコマンドを示しています。

       $ set process/parse_style=extended 
       $ define y 'x' 
       %DCL-I-SUPERSEDE, previous value of Y has been superseded 
       $ sho log y 
          "Y" = "string" (LNM$PROCESS_TABLE) 
       $ define y &x 
       %DCL-I-SUPERSEDE, previous value of Y has been superseded 
       $ sho log y 
          "Y" = "string" (LNM$PROCESS_TABLE) 

変数 y に割り当てられた文字列はどちらも小文字で返されていることに注意してください。これは,DEFINE コマンドが,大文字と小文字の区別を保存する $FILE を使用しているために発生します。

このような特徴を持つことから,アンパサンドによる置換は,解析スタイルが TRADITIONAL に設定されている場合でも EXTENDED ファイル名を指定するために使用することができます。次に例を示します。

$ set process/parse=extended 
$ cre file^ name.doc 
Contents of an ODS5 file 
 Exit 
 
$ set process/parse=traditional 
$ a = "file^ name.doc" 
$ type file^ name.doc 
%DCL-W-PARMDEL, invalid parameter delimiter - check use of special characters 
 \^NAME\
$ type 'a' 
%DCL-W-PARMDEL, invalid parameter delimiter - check use of special characters 
 \^NAME\
$ type &a 
Contents of an ODS5 file 

  注意
アンパサンドによる置換は,フォーリン・コマンドには使用できません。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.