このセクションでは、NetWareインストールNLM (INSTALL.NLM、NWCONFIG.NLM)と似た役割を持つICMD.NLMがサポートするコマンドについて説明します。これらのコマンドをサポートするICMDのバージョンについては、「各バージョンで利用できるNetWareインストールコマンド」にある表を参照してください。
ICMD.NLMバージョン2.18以上を使用する場合には、このICMD.NLMをSYS:SYSTEMにコピーしないでください。違うディレクトリにコピーし、そこからロードするようにしてください。
たとえば次に示すスクリプトコマンドを使用すると、ICMD.NLMは一時的なディレクトリにコピーされ、そこからロードされます。
CopyToServer SYSTEM\TMP, ICMD.NLM, "", ""
Command TMP\ICMD
この手順は、SYS:SYSTEMに置かれたICMD.NLMのバージョンを現在の4.10に保ち、このICMD.NLMを利用する組み込み製品をすべて確実に動作させることを目的に行います。最新のICMD.NLMに以前のバージョンと完全な互換性がある可能性もありますが、そのような面からの検証は十分には行われていません。
ICMD.NLMコマンドハンドラがサポートする外部コマンドを使用する場合には、スクリプトファイルにステートメントコマンド[<filepath>]ICMDを記述する必要があります。まずCopyToServerコマンドでICMD.NLMを一時的なディレクトリ(SYS:SYSTEM\TEMPなど)にコピーし、次にCommandコマンドでこのディレクトリからICMD.NLMを実行します(「Command SYS:SYSTEM\TEMP\ICMD」などと指定します)。この手順を踏めば、SYS:SYSTEMの標準ICMD.NLMを利用することから生じる互換性の問題を完全に回避できます。アプリケーション特有の機能を実行させるために、新しいコマンドを作成して独自のバージョンのICMD.NLM (ファイル名は変更しておきます)に追加することができます。
Activate
Activateコマンドを使用すると、インストール画面が起動されます。
Activate
この先のスクリプトで使用されるインストール画面が表示されます。
AppendFile <src var name>, <src file spec>, <src vol name>, <src descr>, <dest var name>, <dest dir>, <dest vol name>, <dest descr>
AppendFileコマンドを使用すると、ソースファイルの内容がターゲットファイルに追加されます。まずターゲットファイルと同じ大きさを持つ一時ファイルが作成され、次にそのファイルがターゲットファイルのファイル名に名前を変更されます。<src file spec>にワイルドカード記号を使用することはできません。
AppendFile input, file1, 'NETWARE-1', "NW [1]", output, file2, '', ''
まず、フロッピーディスクNW[1]を要求するメッセージが表示されます。フロッピーディスクをセットすると、ボリュームラベルNETWARE-1が存在するかどうかのチェックが行われます。フロッピーディスク上のFILE1の内容が、outputに当たるディレクトリに置かれたFILE2に追加されます。
AppendTextToFile <src var name>, <src file spec>, <src vol name>, <src descr>, <text>
AppendTextToFileコマンドを使用すると、リテラルテキストの内容がターゲットファイルに追加されます。また、全エントリに日付のタイムスタンプが押されます。<src file spec>にワイルドカード記号を使用することはできません。
ファイルが検出されると、変数NWSTATUSの値が0になります。検出されなければ、0以外の値になります。
AppendTextToFile input, file1, 'NETWARE-1', "NW[1]", 'Installation Complete'
まず、フロッピーディスクNW[1]を要求するメッセージが表示されます。フロッピーディスクをセットすると、ボリュームラベルNETWARE-1が存在するかどうかのチェックが行われます。フロッピーディスク上のFILE1の内容が、outputに当たるディレクトリに置かれたFILE2に追加されます。
CheckFile <var name>, <file spec>, <vol name>, <description>
CheckFileコマンドを使用すると、<var name>の値で指定したパスで<file spec>の有無がチェックされます。指定したパスがフロッピーディスクで、<vol name>にNULL以外(''以外)の値を指定した場合、ドライブにディスクが挿入されていなければ、ディスク<description>を要求するメッセージが表示されます。
ファイルが検出されると、変数NWSTATUSの値が0になります。検出されなければ、0以外の値になります。
CheckFile NWSRC, file1.dat, '', ''
GotoIfNEqual '%{NWSTATUS}', 0, FileNotFound
File found
.
.
Label FileNotFound
この例では、ファイルFILE1.DATの有無がチェックされます。NWSRCにより指定されるパスでこのファイルが検出されると、実行位置は次の行に移ります。ファイルが検出されなければ、プログラムは「label FileNotFound」の行に分岐します。
Config <flag>
Configコマンドを使用して、インストールプログラムから利用できるデフォルト情報を含んだ環境設定ファイルを作成します。<flag>が1であれば、SYS:SYSTEMにAUTOEXEC.NCFが作成されます。0であれば、サーバ起動パスにSTARTUP.NCFが作成されます。
Config 1
この例では、サーバ名、内部ネットアドレス、設定済みLANドライバのロードコマンドおよびバインドコマンド、ディレクトリサービス、タイムサービスの情報を含むAUTOEXEC.NCFが作成されます。SYS:SYSTEMに置かれていた既存のAUTOEXEC.NCFは、上書きされます。
Console <text>, <delay in seconds>
Consoleコマンドを使用して、システムコンソール画面にテキストを入力します。また呼び出しプロセスに制御権を返す前に、<delay in seconds>秒間の遅滞を発生させます。システムインストールプロセスはコンソールと異なるスレッドで実行されるため、Consoleコマンドが終了する前に次のコマンドが終了することがあります。delayを-1に設定すると、システムコンソール画面のバッファにあるすべてのコマンドが処理されるまでConsoleコマンドは遅滞します。
Console 'load ne2000 frame=ethernet_802.3 int=3 port=300', 10
Console 'bind ipx to ne2000 net=1240000', 3
このコマンドにより、NE2000TMドライバがロードされ、IPXTMにバインドされます。
CopyFile <recurse flag>, <directory flag>, <empty flag>, <attribute flag>, <attributes>, <src var name>, <src file spec>, <src vol name>, <src descr>, <dest var name>, <dest dir>, <dest vol name>, <dest descr>, [<conditional copy flag>]
CopyFileコマンドを使用して、ソースパスからターゲットパスへファイル(<src file spec>にワイルドカードを使用できます)をコピーします。
<recurse flag> (0|1)
値 | 説明 |
---|---|
0 |
サブディレクトリを再帰的にコピーしません。 |
1 |
サブディレクトリを再帰的にコピーします。 |
<directory flag> (0|1|2|3)
<empty flag> (0|1)
値 | 説明 |
---|---|
0 |
ファイルが検出されなくてもエラーは発生しません。 |
1 |
ファイルが検出されないと、エラーが発生します。 |
<attribute flag> (0|1|2)
値 | 説明 |
---|---|
0 |
デフォルトのファイルセット属性を使用します。 |
1 |
ソースファイルの属性を使用します。 |
2 |
<attributes>に指定した属性を使用します(DOSドライブへコピーする場合には必ずこれを使用します)。 |
<attributes>
DOSファイルの場合
属性 | 意味 |
---|---|
00000001 |
読み込み専用 |
00000002 |
隠し |
00000004 |
システム |
00000008 |
ボリュームラベル |
NetWareファイルの場合
予約済みのパス名(<src|dest var name>)はNWSRC、NWDST、NWBOOT、そしてNetWareファイルの標準ソースパス、ターゲットパス、起動パスです。<dest dir name>にはNULL文字列を指定できます。
<conditional copy flag>
CopyFile 0, 0, 1, 0, 0, input, *.*, 'NETWARE-1', "NW [1]", output, '', '', ''
これはGetPathの例の続きです。まず、フロッピーディスクNW[1]を要求するメッセージが表示されます。フロッピーディスクをセットすると、ボリュームラベルNETWARE-1が存在するかどうかのチェックが行われます。フロッピーディスク上の全ファイルが、ユーザがoutputとして指定したサブディレクトリにコピーされます。
CopyFloppyImage <floppy type flag>, <diskette name>, <src var name>, <src file spec>, <src vol name>, <src descr>, <dest var name>, <dest dir>, <dest vol name>, <dest descr>
CopyFloppyImageコマンドを使用して、フロッピーディスクのイメージファイルを指定したドライブ(ターゲットパスはフロッピーディスクドライブを指定する必要があります)にセクタ単位でコピーします。
変数 | 説明 |
---|---|
<floppy type flag> (0|1) |
0に設定すると、3.5インチ高密度ドライブが指定されます。1に設定すると、5.25インチ高密度ドライブが指定されます。 |
<diskette name> |
フロッピーディスクの外部ラベルです。 |
GetPath, dst, 2, 'A:', ''
CopyFloppyImage 0, "Disk 1", 3.5\WSDOS_1.IMG, '', '', dst, '', '', ''
ソースパスで指定されたフロッピーディスクイメージが、指定されたドライブのフロッピーディスクにコピーされます。
Delay <delay in seconds>
呼び出しプロセスに制御権を返す<delay in seconds>秒前に、制御権を開放します。負の値が指定された場合、遅滞時間は0から<delay in seconds>の絶対値までのランダムな値に設定されます。
Delay '-10'
この例の場合、遅滞時間は0秒から10秒までのランダムな値になります。
DiskReset <var name>
DiskResetコマンドを使用すると、DOSは<var name>フロッピードライブでディレクトリを再スキャンします。NetWareに制御権があるとき、ドライブ変更割り込みは無効になるため、このコマンドが必要になります。
myDirがA:\に対応しているものとすると、
DiskReset myDir
ドライブA:\が再スキャンされます。
DisMountCD <CD Volume Name>
DisMountCDコマンドは、PromptForCDコマンドと対で使用します。PromptForCDコマンドを使用してマウントしたCDボリュームのマウントを、このコマンドを使用して解除します。
DisMountCD 'CDVolumeName'
Display_Text_File <Path>, <Filename>, <Completion Code>
Display_Text_Fileコマンドを使用すると、ASCII形式のテキストファイルが表示されます。ユーザは自由にテキストをスクロールして、ファイルの内容を読むことができます。スクロールバーが必要な場合には、自動的に表示されます。ファイルの最大サイズは30KBです。
GetPath sys, 1, 'SYS:', ''
Display_Text_File sys, "license.txt", ccode
正常に終了した場合、completion codeは0を返します。0以外の値は、エラーです。
Display <0|1|2>, "...<text>..."
Displayコマンドを使用すると、最初の引数が1の場合、警告音と共にメッセージが表示されます。最初の引数が2の場合は、メッセージはコピーステータスとして表示されます。
Display 0, "Product XYZ installation is complete."
テキストが表示され(警告音は鳴りません)、ユーザは<Enter>を押して先に進むことができます。
DSInst <time zone name>, <time server type>, <daylight flag>, <daylight start>, <daylight end>, <daylight offset in seconds>, <tree name>, <tree address>, <container object name>, <admin name>, <admin password>, <replica flag>, <upgrade bindery flag>, <root server flag>
DSInstコマンドを使用して、デフォルトの時刻同期でディレクトリをインストールします。
DSInstMST7MDT, SECONDARY, 1, '(APRIL SUNDAY FIRST 2:00:00 AM)', '(OCTOBER SUNDAY LAST 2:00:00 AM)', 3600, URSA, FACE3234, 'O=Novell', 'CN=Admin.O=Novell', '', 1, 1, 0
このサーバには、タイムサービスが既存のツリー名URSAを使用するセカンダリサーバとしてインストールされます。ディレクトリサービスは、このサーバがコンテナO=Novellにあるものとしてインストールされます。レプリカがインストールされ、バインダリはアップグレードされます。
EraseFile <directory flag>, <var name>, <file spec>, <vol name>, <vol descr>
EraseFileコマンドを使用すると、<file spec>に指定したファイルまたはディレクトリが再帰的に消去されます。ワイルドカードが使用できます。NetWareでは、どのような属性のファイルでも削除できます。DOSでは、一般的なファイルのみ削除できます。
重要: このコマンドを使用するときは、目的のデータだけを削除するように注意してください。
<directory flag>が1の場合、<file spec>にはディレクトリ名を指定する必要があります。この場合、ディレクトリの中身が削除されますが、ディレクトリ自体は削除されません。
myDirがディレクトリVOL1:\に当たる場合、
EraseFile 1, myDir, '', '', ''
ディレクトリVOL1:\の中身が削除されます。
EditNCF <ncf path var>, <ncf file name>, <backup ext>, <ccode>
EditNCFコマンドを使用して、指定したNCFファイルを次のように編集します。
GetPath startup, 1, 'C:\\NWSERVER', ''
EditNCF_KEYSTRING ''
EditNCF_KEYSTRING 'PK411.NLM'
EditNCF startup, 'startup.ncf', 'bak', ccode
C:\NWSERVER\STARTUP.NCFの内部で文字列「PK411.NLM」を含む行が検索され、EditNCFコマンドによりコメント化されます。ccodeの値の意味は次のとおりです。
0 - 成功
1 - 重複した拡張子
2 - オープンエラー
3 - 読み込みエラー
4 - 書き出しエラー
5 - バックアップ拡張子エラーに対するNCF
6 - NCFエラーに対するTmp
EditNCF_ADDLINE <LineToBeAdded>
EditNCF_ADDLINEコマンドを使用して、EditNCFコマンドで編集中のファイルの先頭に追加する行のリストにテキスト行を追加します。
EditNCF_ADDLINE ''
EditNCF_ADDLINE 'LOAD PK411.NLM'
EditNCF startup, 'startup.ncf', 'bak', ccode
1行目でEditNCF_ADDLINEリストをクリアします。2行目で、STARTUP.NCFファイルの先頭に文字列「LOAD PK411.NLM」を追加します。
EditNCF_KEYSTRINGS <keystring>
EditNCF_KEYSTRINGSコマンドを使用して、EditNCFコマンドでコメント化する行を指定する際に使用する文字列のリストを定義します(いずれかの文字列を含む行がコメント化されます)。
注: リストの最後のエントリはNULL('')にしておく必要があります。このコマンドは複数回使用できます。コマンドが実行されるごとに、その前に定義したリストが置き換えられます。
EditNCF_KEYSTRINGS ''
EditNCF_KEYSTRINGS 'PK411.NLM', 'ADTRSTFX', 'AUTODUMP', 'CLSSCRFX', 'EAPURGFX', 'EVNTRPFX', 'GETDIRFX', ''
EditNCF startup, 'startup.ncf', 'bak', ccode
1行目でEditNCF_KEYSTRINGSリストをクリアします。2行目で、STARTUP.NCFでコメント化する行を決定する文字列を追加します。
ExtractVersionNumbers <version string>, <major var name>, <minor var name>, <revision var name>
ExtractVersionNumbersコマンドを使用すると、バージョン文字列が構文解析され、メジャーバージョン番号、マイナーバージョン番号、リビジョン番号が整数値として返されます。バージョン文字列の構文解析では、数字以外の文字で始まる文字列は無視されます。バージョン文字列のメジャー、マイナー、リビジョンの値が変数に代入されます。バージョン文字列にリビジョン番号が含まれない場合、0が返されます。リビジョン番号が数字以外の値である場合、数字のリビジョン番号が返されます(A = 1、B = 2など)。
SetVar version, "v2.11"
ExtractVersionNumbers version, major, minor, revision
変数versionには文字列「v2.11」が収められます。ExtractVersionNumbersコマンドにより、変数majorに値2が、変数minorに値11が返されます。変数revisionには0が返されます。
FileVersion <src var name>, <src file spec>, <src vol name>, <src descr>, <Module major number>, <Module minor number>, <Module rev number>, <Module description>, <return code>
FileVersionコマンドを使用すると、返されたコードが0である限り、NetWare Loadable Moduleの説明文字列(NLM、HAM、CDM、LANなど)に加えて、メジャー、マイナー、リビジョン番号が返されます。
重要: このコマンドはNetWare Loadable Moduleに対してのみ働きます(.EXEや.DLLファイルに対しては働きません)。
GetPath1, 1, 'SYS:\\SYSTEM'
File Version path1, 'DS.NLM', '','', DSMajor, DSMinor, DSRev, DSDesc, DSCode
GetDOSServer <var name>
GetDOSServerコマンドを使用すると、SFT* IIIサーバのデフォルトDOSサーバ番号が<var name>に返されます。
GetDOSServer DOSServer
変数DOSServerの値は、0または1が返されます。それ以外の値の場合、サーバではSFT IIIが稼動していません。
GetPath <var name>, <path type>, <default>, <prompt>, [<base var name>]
GetPathコマンドを使用して、プロンプト画面からユーザにパスを入力させることができます。prompt文字列が表示されます。%sの部分は(C言語の印刷フォーマットに似ています)<default>文字列で置き換えられます。
プロンプトには設定を変更する場合のキー操作の説明も表示されます。末尾のバックスラッシュはパスが表示される前に常に削除されます。<var name>には、後でCopyFileコマンドに利用する変数名を指定します。<prompt>をNULLにした場合、プロンプトは表示されません。そのパス変数に設定されます。<base var name>を指定した場合、これは新しい変数の基準として使用されます(リモート接続番号が保持される、など)。
<path type>
値 | 説明 |
---|---|
1 |
どのようなパスも指定できます。 |
2 |
フロッピーディスク(リモートを含む)のみ指定できます。 |
3 |
DOS (リモートを含む)のみ指定できます。 |
4 |
NetWareローカルパスのみ指定できます。 |
5 |
ローカルのフロッピーディスクのみ指定できます。 |
GetPath input, 1, 'A:', "Files will be copied from %s\\."
次のプロンプトが表示されます。
Files will be copied from A:\
Press <F3> to specify a different path.
Press <F4> to specify a remote path.
Press <Enter> to continue.
Goto <label_name>
Gotoコマンドを使用すると、「Label <label_name>」コマンドが最初に現れる行に実行位置が移動します。
ラベルの適用範囲は必ずファイルセットに対してローカルです。そのため、Gotoステートメントでは現在のファイルセット以外のファイルセットに実行位置を移すことはできません。
Goto Done
Label Done
ステートメント「Goto Done」により、「Label Done」に実行位置が移動します。
GotoIfEqual <larg1>, <arg2>, <label_name>
GotoIfEqualコマンドを使用すると、<arg1>の値が<arg2>の値に等しいとき、ラベル<label_name>が最初に現れる行に実行位置が移動します。<arg1>と<arg2>には、どちらも整数値を指定する必要があります。
ラベルの適用範囲は必ずファイルセットに対してローカルです。そのため、Gotoステートメントでは現在のファイルセット以外のファイルセットに実行位置を移すことはできません。
GotoIfEqual 0, 1, Error
Goto Done
Label Error
値0と1は等しくないため、実行位置は「Label Error」に進みません。
注: GotoIfEqualコマンドは整数値を比較します。文字列は比較しません。
GotoIfNEqual <arg1>, <arg2>, <label_name>
GotoIfGreater <arg1>, <arg2>, <label_name>
GotoIfLess <arg1>, <arg2>, <label_name>
GotoIFGrEqual <arg1>, <arg2>, <label_name>
GotoIfLsEqual <arg1>, <arg2>, <label_name>
これらのコマンドはGotoIfEqualとほぼ同じ働きを持ちます。異なる点は、それぞれ次の条件でプログラムが分岐することです。
<arg1> と <arg2>が等しくない場合
<arg1>が<arg2>よりも大きな値を持つ場合
<arg1>が<arg2>よりも小さな値を持つ場合
<arg1>が<arg2>と同じか、より大きな値を持つ場合
<arg1>が<arg2>と同じか、より小さな値を持つ場合
ラベルの適用範囲は必ずファイルセットに対してローカルです。そのため、Gotoステートメントでは現在のファイルセット以外のファイルセットに実行位置を移すことはできません。
注: GotoIf*コマンドは整数値を比較します。文字列は比較しません。
Is_NLM_Active <NLM Name>, <Completion Code>
Is_NLM_Activeコマンドを使用すると、ロード済みのモジュールのリストが検索され、NLMがロードされているときは1が、NLMがメモリにないときは0が返されます。
Is_NLM_Active "Monitor.nlm", ccode
IsSubString <string>, <substring>, <index>
IsSubStringコマンドを使用すると、<substring>が実際に<string>に含まれている場合は<string>の0から始まる<index>が返されます。含まれていない場合には、<index>の値は-1になります。
IsSubString 'Little Miss Muffet sat on', 'Miss Muffet', index
この例では、<index>には7が返されます。
Label <label_name>
Labelコマンドは、<label_name>を指定したGotoステートメントのターゲットとしてのみ働きます。
重要: ラベルの適用範囲は必ずファイルセットに対してローカルです。そのため、Gotoステートメントでは現在のファイルセット以外のファイルセットに実行位置を移すことはできません。
Goto Done
Label Done
ステートメント「Goto Done」により、「Label Done」に実行位置が移動します。
LangVar <default>, <lang var>, <src var dir name>, <src vol name>, <src descr>
LangVarコマンドを使用して、変数を言語番号に設定します。ディレクトリ<src var dir name>から、現在のサーバの言語番号と同じ名前を持つサブディレクトリを検索します。そのサブディレクトリが検出されると、<lang var>の値がその数値に設定されます。検出されない場合には、<lang var>は<default>に設定されます。
現在の言語番号を6とします。
LangVar 4, lang, NWSRC, '', ''
このコマンドにより、ソースインストールディレクトリで「6」という名前のディレクトリが検索されます。このディレクトリが検出されると、変数langは6に設定されます。
Menu <var name>, <Prompt>, <# of menu options>, <default menu option>, <first choice>, <first value>, <second option>, <second value> [<third option>, <third value>,] [<fourth option>, <fourth value>]
Menuコマンドを使用すると、ヘッダ領域に<Prompt>と表示されたウィンドウが現れます。ヘッダの下のスクロール領域に<choices>が表示されます。<# of menu options>には、1から始まる数を指定します。<default menu option>には、0から始まる数を指定します。コマンドは、最後の値の後にカンマを入れずに終えます。
Menu done, "Are you ready to continue?", 2, 0,
"Yes", 1,
"No", 0
このMenuコマンドにより、「Are you ready to continue?」と表示されたボックスが画面に表示されます。ボックスの下に、「Yes」と「No」の選択肢が表示されます。「Yes」はデフォルトの選択肢として強調表示されています。選択を行うと、その値が変数に与えられます。値は整数である必要があります。
NLMExec <block flag>, <command line>
NLMExecコマンドを使用して、<command line>に指定したNLMを実行します。<block flag>が1の場合、NLMExecコマンドはNLMの実行が終了するまで待ち、その後に再開します。NLMExecは、外部コマンドにおけるExecコマンドです。NLMExecIOコマンドは、NetWare SFT IIIサーバのデフォルトDOSサーバのコマンドラインを実行する以外はNLMExecと同じです。詳細については、「SetDOSServer」を参照してください。
NLMExec 1, PINSTALL
このコマンドにより、PINSTALL.NLMが実行されます。コマンドはプログラムの完了を待ちます。
Partitions <delete flag>
Partitionsコマンドを使用すると、利用可能なすべてのデバイスでNetWareパーティションを作成できます。<delete flag>が1の場合、起動パーティション以外の既存のパーティションはすべて削除されます。<delete flag>が0の場合には、そのまま残されます。デフォルトの規則(「@DeletePartition」を参照してください)に従い、パーティションのサイズは最小で1MBです。
DOS (アクティブ)パーティションとNetWare 286パーティションを持つ既存のデバイスに、次のコマンドを使用します。
Partitions 1
NetWare 286パーティションが削除され、空き領域にNetWareパーティションが作成されます。
PromptForCD <CD Volume Name>, <seconds to mount>
PromptForCDコマンドは、DisMountCDコマンドと対で使用します。PromptForCDコマンドを使用すると、プログラムは<CD Volume Name>という名前のCDをCD-ROMドライブに挿入するように要求するメッセージを表示します。その後、<seconds to mount>に指定する時間内でCDボリュームをマウントしようと試みます。
PromptForCD 'CD 1', 30
Quit
Quitコマンドを使用すると、その位置でスクリプトの処理が終了します。それ以降の部分が処理されることはありません。
GotoIfEqual %{variable1}, %{true}, Continue_On
Quit
Label Continue_On
ReadProductRecord <productID>, <recordtype>, <recorddatavarname>, <ccode>
ReadProductRecordコマンドを使用すると、<productID>と<recordtype>に指定した値と一致する製品データベースのレコードが読み込まれ、対応するデータが返されます。このコマンドはProductRecordコマンドと対で使用します。レコードタイプの詳細については、「ProductRecord」を参照してください。
ReadProductRecord MYPROD, 0, version, ccode
このコマンドにより製品データベースが検索され、製品「MYPROD」に対応する値が<version>に返されます。
Read_Var_File <path>, <filename>, <completion code>
Read_Var_Fileコマンドを使用すると、filenameに指定したファイルの内容が読み込まれ、スクリプトの処理に利用する変数を作成します。このファイルは次のような内容のASCIIフォーマットファイルです。
「Variable1=true」
「Variable2=false」
「Variable3=Servername」
Read_Var_File "sys:system", "varfile.txt", ccode
注: ccodeにはファイルオープンステータスが返されます。0が成功、その他の値はエラーを表します。左側の変数の先頭または末尾にスペースが置かれると、そのスペースは変数名の一部として扱われるため、この変数を参照する際にスペースを含めた変数名を指定する必要が生じます。
SetDir <var name>, <relative dir>, <vol name>, <vol descr>, <attributes>, <0|1>, <rights>
SetDirコマンドを使用して、GetPathコマンドで取得した<var name>に従い、ディレクトリを作成します(同じ名前の既存のディレクトリが存在しない場合)。値<relative dir>にはNULLを指定できます。<attributes>は、ディレクトリを作成するときに使用する属性を表します。0が通常の属性です。引数<0|1>が1の場合、サーバコンテナオブジェクト(またはEveryone)にはディレクトリにアクセスする権利<rights>が与えられます。
myDirがディレクトリVOL1:\に当たる場合、
SetDir myDir, DOC, '', '', 10, 1, 0
ディレクトリVOL1:\DOCが作成され、このディレクトリにアクセスする権利が利用可能なユーザ全員に与えられます。
SetDOSServer <engine number>, <ccode>
SetDOSServerコマンドを使用して、デフォルトDOSサーバに設定する<engine number>を指定します(有効な値は0と1です)。OS APIで使用するデフォルトサーバが設定されます。
注: DiskResetとGetPathは、最初にDOSサーバを目的に応じて設定することにより、特定のIOエンジンを対象とするように設定できます。これにより、パス変数を特定のIOエンジンに本質的にマッピングできるようになります。これ以降、デフォルトDOSサーバが何に設定されているかに関係なく、そのパス変数は指定したIOエンジンに関連付けられます。その結果、パス変数を使用するコマンドはすべて、デフォルトではなくパス変数に関連付けられたIOエンジンをターゲットにします。
SetVar IOEngineNumber, 0
SetDOSServer IOEngineNumber, ccode
サーバのデフォルトIOエンジン0が、デフォルトDOSサーバに設定されます。ccodeの値は、成功のときは0、失敗のときは-1になります。
SetLConfigLang <value>
SetLConfigLangコマンドを使用すると、サーバ起動ディレクトリでLCONFIG.SYSファイルが検索され、デフォルトサーバ言語ID番号が<value>に変更されます。
SetLConfigLang 9
LCONFIG.SYSファイルに記述されているデフォルトサーバ言語ID番号が9 (日本語)に変更されます。
SetVar <variable name>, <variable value>, [<Prompt>]
SetVarコマンドを使用して、名前<variable name>を持つ変数に、文字列値<variable value>を与えます。値が存在しない場合は、作成されます。文字列値の長さは127文字以下に設定してください。
SetVar message, "Hello World!"
このコマンドを実行すると、「message」という名前の変数が作成され、値として文字列「Hello World!」が与えられます。
注: Promptオプションは、バージョンが3.25以上の場合にのみ利用できます。
SGotoIfコマンドはGotoIfコマンドと同じオプションを持ちます。SGotoIfコマンドでは整数値の比較ではなく文字列の比較が行われます。
SpaceCheck <path var name>, <value>
SpaceCheckコマンドを使用すると、<path var name>が検索されます。一致するNetWareボリュームが検出されると、そのボリュームの大きさが<value>バイト以上かどうか、そしてそのボリュームに<value>バイト以上の空き領域があるかどうかがチェックされます。ボリュームの大きさが足りない場合、インストールは中止されます。空き領域が十分にない場合には、ユーザに警告を表示し、インストールを続行します。
srcVarがVOL1:\FILESに対応するとすると、
SpaceCheck srcVar, 1000000
ボリュームVOL1:に1,000,000バイトの空き領域があるかどうかがチェックされます。
注: バージョン3.25以前のICMD.NLMは、DOSドライブでのSpaceCheckをサポートしていません。DOSドライブオプションは、これ以降のバージョンからサポートされます。
SrchNCF <ncf path var>, <ncf file name>, <keystring>, <foundline var name>
SrchNCFコマンドを使用すると、.NCFファイルの内部で<keystring>に一致する部分文字列を含む行が検索されます(大文字と小文字は区別されません)。目的の行が検出されると、その行のテキストが返されます。検出されなかった場合には、変数<foundline var name>は空になります。
注: エラーが発生した場合には(無効なファイル名、読み込みエラーなど)、未検出の場合と同じ値が返されます。このコマンドはEditNCFを呼び出す前に使用することを前提にしています。EditNCFコマンドはより詳細な完了コードを返すため、必要に応じた対応を取ることができます。
GetPath sys, 1, 'SYS:\\', ''
SrchNCF sys, 'SYSTEM\\AUTOEXEC.NCF', "Load Monitor", ccode
SrchNCFコマンドにより、SYS:\SYSTEM\AUTOEXEC.NCFファイルの内部で文字列「Load Monitor」が検索され、検出された場合にはccodeにその行番号が返されます。
ValueSet <var name>, <value>
Value Add <var name>, <value>
ValueSetコマンドを使用して、変数<var name>の数値を設定します。ValueAddコマンドを使用すると、<var name>の数値に指定した値が加算されます。
ValueSet srcVar, 1
変数srcVarの値が1に設定されます。srcVarが存在しない場合には、作成されます。
Volumes <minimum vol SYS: size in sectors>
Volumesコマンドを使用すると、サーバにボリュームが作成され、マウントされます。<minimum volume SYS: size in sectors> (1セクタ=512バイト)以上の容量を持つ最初のデバイスに、ボリュームSYS:が作成されます。そしてその他の各デバイスに1つ、「VOL1」「VOL2」……という名前のボリュームが作成されます。
容量50MB、1つのNetWareパーティションがあるがボリュームはない既存のデバイスに対して、次のコマンドを実行します。
Volumes 51200; 25 MB minimum
このコマンドにより、デバイス上にボリュームSYS:が作成され、マウントされます。NetWareボリュームの作成とマウントの詳細については、『Volume Management API』を参照してください。
Write_Var_File <path>, <filename>, <varname>, <var value>, <completion code>
Write_Var_Fileコマンドを使用すると、「パス/ファイル名」の形でfilenameに指定したファイルに、varnameとvar valueが書き込まれます。このファイルは次のような内容のASCIIフォーマットファイルです。
「Variable1=true」
「Variable2=false」
「Variable3=Servername」
Write_Var_File "sys:system", "varfile.txt", "Variable1", "true", ccode
注: ccodeにはファイルオープンステータスが返されます。0が成功、その他の値はエラーを表します。左側の変数の先頭または末尾にスペースが置かれると、そのスペースは変数名の一部として扱われるため、後でこの変数を参照する際にスペースを含めた変数名を指定する必要が生じます。指定した名前のファイルが存在しない場合には、そのファイルが作成されます。その後、varnameとvar valueが書き込まれます。ファイルが存在する場合には、ファイルの内容の末尾にvarnameとvar valueが付け加えられます。