Sdílet prostřednictvím


Analýza argumentů příkazového řádku c

Konkrétní společnosti Microsoft

Při interpretaci argumenty na příkazovém řádku operačního systému, Microsoft C spouštěcí kód používá následující pravidla:

  • Argumenty jsou odděleny prázdným znakem, což je mezera nebo tabulátor.

  • Řetězec ohraničena uvozovkami interpretována jako jediný argument, bez ohledu na prázdné místo v.Do argumentu může být vložen řetězec v uvozovkách.Všimněte si, že znaku stříšky (^) nebyl rozpoznán jako znak escape nebo oddělovač.

  • Dvojité uvozovky znak zpětného lomítka, \ ", je interpretován jako literál dvojité uvozovky (").

  • Zpětná lomítka jsou interpretovány doslovně, pokud jsou bezprostředně předcházeny znakem dvojitých uvozovek.

  • Pokud sudý počet zpětnými lomítky následuje uvozovky, potom jedno zpětné lomítko (\) je umístěna do argv pole pro každou dvojici zpětná lomítka (\) a dvojité uvozovky (") je interpretována jako oddělovač řetězců.

  • Pokud lichý počet zpětnými lomítky následuje uvozovky, potom jedno zpětné lomítko (\) je umístěn v argv pole pro každou dvojici zpětná lomítka (\) a dvojité uvozovky interpretovány jako sekvence escape zbývající zpětným lomítkem způsobuje literál dvojité uvozovky (") do argv.

Tento seznam ukazuje pravidla nad zobrazením interpretovaný výsledek předán argv pro několik příkladů argumenty příkazového řádku.Výstup uvedené v druhé, třetí, a čtvrtého sloupce je argumenty.C program, který následuje seznam.

Vstupní příkazového řádku

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

Příklad

a1y7w461.collapse_all(cs-cz,VS.110).gifKód

// 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;
}

Komentáře

Příklad výstupu z tohoto programu je:

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      

Konec konkrétní společnosti Microsoft

Viz také

Referenční dokumentace

hlavní funkce a spuštění programu