FreeBASIC マニュアルのトップに戻る

FreeBASIC Command

目次→実行時ライブラリー参考→オペレーティング・システム関連COMMAND←オリジナル・サイト

COMMAND 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

プログラムを呼ぶために使われる、コマンドラインのパラメータを返します。

構文:
declare function Command ( byval index as long = -1 ) as string

用法:
result = Command[$]( [ index ] )

パラメタ:
index
特定のコマンドライン引数のための、ゼロ・ベースのインデックス。

戻り値:
コマンドライン引数を返します。

記述:
Command は、実行時にプログラムに渡された、コマンドライン引数を返します。

index が、ゼロ未満(< 0)であれば、空白で切り離して、すべてのコマンドライン引数のリストを返します。引数が一つなら、一つの引数を返します。
値がゼロ (0) なら、実行可能ファイルの名前を返します。
そして、値が1 (1) 以上の場合は、それぞれのコマンドライン引数を返します。

index がプログラムに渡された引数の数より大きいと、ヌル文字列 ("") が返ります。

コマンドラインを、引数として分析するとき、パラメータ・リスト内の二重引用符の間のすべてを、単一のブロックとみなして、二重引用符なしで返されます。

デフォルトで、引き数として glob(ワイルドカード・マッチ) するファイル名(ファイル名へのワイルドカードの拡張)は、互換性のために FreeBASIC のすべてのポート上で使用されます。
ワイルドカードを含むコマンドラインの引数は、ファイルが一致しないか、あるいは適切に引用符で囲まれれば、一般的に拡張しません。
リダイレクション(書き換え)のための他の特殊文字は、適切に引用符で囲まないかぎり、通常返されません。
コマンドライン引数の、適切な引用符について、使われるシェルについての詳しい情報に関する文書を参照してください。
コマンドライン引数で backslash(\) を使うと、奇妙な動作が発生する可能性があり、結果はプラットフォームによって異なります。


Windows の下で、globbing されるファイル名を無効化する
ソースのどこかで、下のグローバル変数を定義してください:
'' For MinGW.org and Cygwin runtimes:
Extern _CRT_glob Alias "_CRT_glob" As Long
Dim Shared _CRT_glob As Long = 0

'' For MinGW-w64 runtime:
Extern _dowildcard Alias "_dowildcard" As Long
Dim Shared _dowildcard As Long = 0


Dos の下で、globbing されるファイル名を無効化する
ソースのどこかで、以下の関数を定義します:
Function __crt0_glob_function Alias "__crt0_glob_function" ( ByVal arg As UByte Ptr ) As UByte Ptr Ptr
  Return 0
End Function

Linux の下で、globbing されるファイル名を無効化する
ファイル名 globbing は、コマンドシェルによって扱われます。
ワイルドカードを含む引数を引用符で囲んで下さい。または、コマンドを実行する前に、シェルの中に globbing されるファイル名を無効にしてください。
例えば、ワイルドカード拡張を無効にするために、'set -f' を使ってみます。

例:
Print "実行ファイル・フルパス: " & Command(0)

Dim As Long i = 1
Do
    Dim As String arg = Command(i)
    If Len(arg) = 0 Then
        Exit Do
    End If

    Print "コマンドライン引数 " & i & " = """ & arg & """"
    i += 1
Loop

If i = 1 Then
    Print "(コマンドライン引数無し)"
End If

Sleep


'$lang: "fblite"

Declare Sub ExeName()

Call ExeName

Sleep


Sub ExeName()
   Print "実行ファイル名:"
   Print Right(Command(0), Len(Command(0))-InStrRev(Command(0),"\"))
   Print
   Print "フルパス:"
   Print Command(0)
End Sub

方言差:

QBからの違い:

参照:

オペレーティングシステム関連 に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2023-09-07 16:46:11
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承