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.