Freigeben über


Analyse-C-Befehlszeilen-Argumente

Microsoft-spezifisch

Microsoft C-Startcode verwendet die folgenden Regeln, wenn die Argumente interpretiert werden, die auf der Befehlszeile des Betriebssystems angegeben werden:

  • Argumente werden durch einen Leerraum (Leerzeichen oder Tabstopp) abgegrenzt.

  • Eine Zeichenfolge, die durch doppelte Anführungszeichen eingeschlossen ist, wird als einzelnes Argument, unabhängig von den Leerraum interpretiert, die darin enthalten sind.Eine Zeichenfolge in Anführungszeichen kann in ein Argument eingebettet sein.Beachten Sie, dass das Caretzeichen (^) nicht als Escapezeichen oder Trennzeichen erkannt wird.

  • Ein doppeltes Anführungszeichen, gefolgt von einem umgekehrten Schrägstrich, \„vorangestellt ist, wird als literales Anführungszeichen () interpretiert.

  • Ein umgekehrter Schrägstrich wird als solcher interpretiert, sofern er nicht unmittelbar vor einem Anführungszeichen steht.

  • Wenn eine gerade Anzahl umgekehrter Schrägstriche von einem doppelten Anführungszeichen folgt, wird ein umgekehrter Schrägstrich (\) in das argv Array für jedes Paar umgekehrter Schrägstriche (\ \) und das doppelte Anführungszeichen (**„**als Zeichenfolgentrennzeichen interpretiert wird) gesetzt.

  • Wenn eine ungerade Anzahl umgekehrter Schrägstriche von einem doppelten Anführungszeichen folgen, wird bewirkt, dass ein umgekehrter Schrägstrich (\) in das argv Array für jedes Paar von umgekehrten Schrägstrichen (\ \) und doppelten Anführungszeichen als Escapezeichen interpretiert wird vom übrigen umgekehrten Schrägstrich eingefügt und ein Literal double anführungszeichen () in argveingefügt werden soll.

Diese Liste zeigt die Regeln oben, indem sie das interpretierte Ergebnis angezeigt werden, das argv für einige Beispiele für Befehlszeilenargumente übergeben wird.Die in der zweiten Ausgabe, die im dritten und vierten Spalten aufgeführt wird, ist vom ARGS.C-Programm, das der Liste folgt.

Befehlszeilen-Eingabe

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

Beispiel

a1y7w461.collapse_all(de-de,VS.110).gifCode

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

Kommentare

Ein Beispiel für die Ausgabe dieses Programms:

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 ENDES bestimmten

Siehe auch

Referenz

Hauptfunktion und Programmausführung