Domovská » jak » Proč obsahuje dir *. * Seznam všech souborů a složek?

    Proč obsahuje dir *. * Seznam všech souborů a složek?

    Někdy může při spouštění příkazů skončit s neočekávanými výsledky, takže učení "proč" za výsledky může být velmi zajímavé. S ohledem na to má dnešní příspěvek SuperUser Q & A odpověď na otázku zvědavé čtenáře.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Otázka

    Čtečka SuperUser Luu Vinh Phuc chce vědět, proč dir *. * Uvádí všechny soubory a složky:

    Když spustím příkaz dir *. *, Vytváří neočekávané výsledky. Zobrazí se i soubory a složky bez názvu v názvu. Například:

    Proč je to tak? Existuje nějaký způsob, jak pouze seznam souborů s tečkou?

    Proč dir *. * Obsahuje seznam všech souborů a složek?

    Odpověď

    Příspěvek SuperUser Fleet Command má pro nás odpověď:

    Příkaz DIR pochází z doby, kdy:

    • Doba (.) Nebyla povolena jako znak v názvech souborů nebo složek
    • Názvy souborů a složek byly omezeny na 8 znaků pro jména a 3 znaky pro rozšíření

    Proto, podle tohoto standardu, *. * Znamená jakýkoliv název a jakékoliv rozšíření. To neznamená řetězec obsahující ".", Který může nebo nemusí mít znaky před nebo za znakem ".".

    Zásady společnosti Microsoft zachovávají zpětnou kompatibilitu, takže interpretace *. * Je zachována. Ale v systému Windows PowerShell znamená *. * Řetězec obsahující ".", Který může nebo nemusí mít znaky před nebo za znakem ".".


    Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.