共用方式為


剖析命令列引數 c

Microsoft 專有的

Microsoft c 啟始程式碼會在解譯作業系統命令列上指定的引數時使用下列規則:

  • 引數會以空白或定位鍵的泛空白字元 (White Space) 進行分隔。

  • 由雙引號包夾的字串會解譯為單一引數,不論內含泛空白字元。 有引號的字串可以內嵌到引數中。 請注意,插入號 (^) 沒有被辨認為逸出字元或分隔符號。

  • 雙引號加上反斜線, \",會被解譯為常值雙引號 (')。

  • 反斜線會逐字解譯,除非後面緊接著雙引號。

  • 如果偶數數目的反斜線後面雙引號,則一條反斜線 (\) 放在argv陣列,每一對反斜線 (\),和雙引號 (') 會被解譯為字串分隔符號。

  • 如果奇數數目的反斜線後面雙引號,則一條反斜線 (\) 放在argv一對反斜線的陣列 (\) 和雙引號,會由剩下的反斜線,導致常值雙引號解譯為逸出序列 ('),放在argv。

這份清單說明上述規則顯示解譯的結果傳遞至argv的命令列引數的數個範例。 輸出列在第二、 三和第四個資料行是從引數。C 程式接下來的清單。

命令列輸入

argv [1]

argv [2]

argv [3]

"a b c" d e

a b c

d

e

"ab\"c" "\\" d

ab"c

\

d

a\\\b d"e f"g h

a\\\b

de fg

h

a\\\"b c d

a\"b

c

d

a\\\\"b c" d e

a\\b c

d

e

範例

a1y7w461.collapse_all(zh-tw,VS.110).gif程式碼

// Parsing_C_Commandline_args.c
// ARGS.C illustrates the following variables used for accessing
// command-line arguments and environment variables:
// argc  argv  envp
//

#include <stdio.h>

int main( int argc, // Number of strings in array argv
 char *argv[],      // Array of command-line argument strings
 char **envp )      // Array of environment variable strings
{
    int count;

    // Display each command-line argument.
    printf_s( "\nCommand-line arguments:\n" );
    for( count = 0; count < argc; count++ )
        printf_s( "  argv[%d]   %s\n", count, argv[count] );

    // Display each environment variable.
    printf_s( "\nEnvironment variables:\n" );
    while( *envp != NULL )
        printf_s( "  %s\n", *(envp++) );

    return;
}

註解

這個程式的其中一個範例的輸出為:

Command-line arguments:
  argv[0]   C:\MSC\TEST.EXE

Environment variables:
  COMSPEC=C:\NT\SYSTEM32\CMD.EXE
 
  PATH=c:\nt;c:\binb;c:\binr;c:\nt\system32;c:\word;c:\help;c:\msc;c:\;
  PROMPT=[$p] 
  TEMP=c:\tmp
  TMP=c:\tmp
  EDITORS=c:\binr
  WINDIR=c:\nt      

結束 Microsoft 特定

請參閱

參考

主要的函式,並執行程式