6.4.7 [コマンドライン]テキストボックスの指定方法について
[実行モード]の指定によって,[コマンドライン]テキストボックスの指定方法が異なります。また,入力プロパティの値を,実行するコマンドの引数として指定することもできます。
[コマンドライン]テキストボックスには,制御文字(\u0000~\u001Fおよび\u007F~\u009F)以外の文字が指定できます。ただし,JP1/AOでは[コマンドライン]テキストボックスに入力されたコマンドの妥当性をチェックしません。動作確認が完了したコマンドを入力してください。
また,[コマンドライン]テキストボックスに環境変数を表す特殊文字などが含まれる場合でも,エスケープされません。ただし,部品の入力プロパティの値がコマンドラインに渡される場合,[プラットフォーム]の選択によって,マッピングされた部品の入力プロパティの値に含まれる次の文字は自動的にエスケープされます。
Windowsの場合:「%」
UNIXの場合:「$」,「`」,「\」,「"」
入力プロパティをコマンドラインの引数としてマッピングする場合は,コマンドの引数の値を「"?dna_部品プロパティのプロパティキー?"」のように,「"」で囲んでください。ただし,PowerShellスクリプトを実行する場合に限り,「"」または「'」で囲むことができます。
なお,[プラットフォーム]がWindowsの場合,部品の入力プロパティの値に「"」が含まれる場合は,部品実行時にエラーになります。
[実行モード]に[スクリプト]を指定した場合
操作対象の機器で実行するスクリプトを作成し,[コマンドライン]テキストボックスには,実行したいスクリプトを呼び出すコマンドを記述してください。スクリプトのファイルパスには,単一ファイルの場合,ファイル名を指定します。複数ファイルをzip形式にしたファイルの場合,ファイルを展開したパスをカレントとして,そこからの相対パスとなるように指定します。
スクリプトは,[実行ディレクトリ]で指定したフォルダ配下の一時フォルダにコピーされて実行されます。
なお,[プラットフォーム]がLinuxの場合,実行時にコマンドラインの前に「./」が指定されて実行されます。そのため,コマンドラインに「./」を指定する必要はありません。コマンドラインに「./」が指定されている場合は,「././」のあとにスクリプトファイルが指定されますが,問題ありません。コマンドラインに環境変数を表す特殊文字などが含まれる場合でも,エスケープされません。
次に,[実行モード]で[スクリプト]を指定している場合の[コマンドライン]テキストボックスの指定方法を示します。
- [コマンドライン]テキストボックスの指定例
cmd.exe /q /c "AAA.bat bbb ccc"
- スクリプトのファイル(AAA.bat)の内容の例
[プラットフォーム]がWindowsの場合,コマンドはバッチファイル化され操作対象の機器で実行されます。そのため,対象のコマンドをコマンドプロンプトで実行した結果と異なることがあります。
[実行モード]に[コマンド]を指定した場合
[コマンドライン]テキストボックスには,操作対象の機器で実行するコマンドを直接記述してください。なお,スクリプトの作成は不要です。
次に,[実行モード]で[コマンド]を指定している場合の[コマンドライン]テキストボックスの指定方法を示します。
- [コマンドライン]テキストボックスの指定例
zzz.exe aaa bbb
入力プロパティの値を,実行するコマンドの引数として指定したい場合
入力プロパティの値を,実行するコマンドの引数として指定したい場合は,[コマンドライン]テキストボックスに「?dna_部品プロパティのプロパティキー?」を指定します。
- [コマンドライン]テキストボックスの指定例
scriptA.sh -xx ?dna_input01? -yy ?dna_input02?
この指定例の場合,「?dna_input01?」の部分に部品プロパティ「input01」の値が代入され,「?dna_input02?」の部分に部品プロパティ「input02」の値が代入されます。
OS標準のスクリプト以外を実行する場合
操作対象機器のOSがWindowsの場合はcmd.exe経由で,UNIXの場合はユーザーのログインシェル経由で,スクリプトが実行されます。OS標準のスクリプト以外を起動したい場合は,対象となる実行ファイルの起動に必要な命令を定義します。
次に,PowerShellスクリプトをコマンドプロンプトで起動し,vCenterへの接続を試行する場合の例を示します。
- [コマンドライン]テキストボックスの指定例
powershell -executionPolicy RemoteSigned -command ".\vsphereConnectChallenge.ps1 '?dna_vCenterServerName?' '?dna_userName?' '?dna_password?' '?dna_portNumber?' '?dna_protocol?'; exit $LASTEXITCODE" 2>&1
PowerShellでは,デフォルトの状態でスクリプトを実行できません。「powershell -executionPolicy RemoteSigned」と指定することで,JP1/AOの操作対象機器に対して,ローカルのPowerShellスクリプトを実行できるようになります。
「?dna_プロパティキー?」はプロパティ値を代入するための変数です。「?dna_プロパティキー?」は「"」または「'」で囲んでください。※
これによって,代入されるプロパティ値に空の値がある場合でも,[コマンドライン]テキストボックスに指定したプロパティが引き渡されます。
注※ PowerShellでは,「"」でプロパティを囲むと,後続のプロパティ値が繰り上がって入力されます。「'」で囲むと,プロパティ値が空でも,後続のプロパティ値が繰り上がらないで,空のプロパティとして認識されます。繰り上がりを避けることで,定義したとおりの引数の内容や順番でスクリプトを実行できます。