Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft-specifik
Microsoft C-startkoden använder följande regler när du tolkar argument som anges på kommandoraden för operativsystemet:
Argument avgränsas med blankstegstecken, som antingen är blanksteg eller flikar.
Det första argumentet (
argv[0]) behandlas särskilt. Den representerar programnamnet. Eftersom det måste vara ett giltigt sökvägsnamn tillåts delar omgivna av dubbla citattecken ("). De dubbla citattecknen ingår inte iargv[0]utdata. De delar som omges av dubbla citattecken förhindrar tolkning av ett blanksteg eller tabbtecken som slutet av argumentet. De senare reglerna i den här listan gäller inte.En sträng omgiven av dubbla citattecken tolkas som ett enda argument, oavsett om den innehåller blankstegstecken eller inte. En citerad sträng kan bäddas in i ett argument. Caret (
^) känns inte igen som ett escape-tecken eller avgränsare. Inom en citerad sträng tolkas ett par dubbla citattecken som ett enda undantaget dubbel citattecken. Om kommandoraden slutar innan ett avslutande dubbel citattecken hittas är alla tecken som lästs hittills utdata som det sista argumentet.Ett dubbelt citattecken som föregås av ett omvänt snedstreck (
\") tolkas som ett literalt citattecken (").Omvänt snedstreck tolkas bokstavligen, såvida de inte omedelbart föregår ett dubbelt citattecken.
Om ett jämnt antal omvänt snedstreck följs av ett dubbelt citattecken placeras ett omvänt snedstreck (
\) i matrisenargvför varje par omvänt snedstreck (\\) och det dubbla citattecknet (") tolkas som en stränggränsare.Om ett udda antal omvänt snedstreck följs av ett dubbelt citattecken placeras ett omvänt snedstreck (
\) i matrisenargvför varje par omvänt snedstreck (\\). Det dubbla citattecknet tolkas som en escape-sekvens av det återstående omvänt snedstrecket, vilket gör att ett literalt dubbel citattecken (") placeras iargv.
Den här listan illustrerar reglerna ovan genom att visa det tolkade resultatet som skickats till argv för flera exempel på kommandoradsargument. Utdata som anges i den andra, tredje och fjärde kolumnen kommer från ARGS. C-program som följer listan.
| Kommandoradsindata | 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 | 
a"b"" c d | 
ab" c d | 
Exempel
Kod
// 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;
}
Ett exempel på utdata från det här programmet är:
Command-line arguments:
  argv[0]   C:\MSC\ARGS.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
Avsluta Microsoft Specifik