Hemsida » hur » Varför dir *. * Lista alla filer och mappar?

    Varför dir *. * Lista alla filer och mappar?

    Ibland kan du sluta med oväntade resultat när du kör kommandon, så att lära dig "varför" bakom resultaten kan vara väldigt intressant. Med det i åtanke har dagens SuperUser Q & A-post svaret på en nyfiken läsarens fråga.

    Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

    Frågan

    SuperUser-läsare Luu Vinh Phuc vill veta varför dir *. * Listar alla filer och mappar:

    När jag kör kommandot dir *. *, Ger det oväntade resultat. Även filer och mappar utan punkt i namnet är listade. Till exempel:

    Varför är det så? Finns det något sätt att bara lista filer med en punkt?

    Varför anger dir *. * Alla filer och mappar?

    Svaret

    SuperUser-bidragare Fleet Command har svaret för oss:

    DIR-kommandot kommer från en tidpunkt då

    • En period (.) Var inte tillåtet som tecken i fil- eller mappnamn
    • Fil- och mappnamn var begränsade till 8 tecken för namn och 3 tecken för tillägg

    Därför betecknade *. * Enligt den standarden vad som helst namn och vad som helst förlängningen. Det menade inte en sträng som innehöll en ".", Som kanske eller inte har tecken före eller efter ".".

    Microsofts policy bevarar bakåtkompatibilitet, så att tolkningen av *. * Behålls. Men i Windows PowerShell betyder *. * En sträng som innehåller en ".", Som kanske innehåller tecken före eller efter ".".


    Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.