Hvorfor gjør dir *. * Liste alle filer og mapper?
Noen ganger kan du ende opp med uventede resultater når du kjører kommandoer, så å lære "hvorfor" bak resultatene kan være veldig interessant. Med det i bakhodet har dagens SuperUser Q & A-post svaret på en nysgjerrig leser spørsmål.
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser leser Luu Vinh Phuc vil vite hvorfor dir *. * Viser alle filer og mapper:
Når jeg kjører kommandoen dir *. *, Produserer det uventede resultater. Selv filer og mapper uten prikk i navnet er oppført. For eksempel:
Hvorfor det? Er det noen måte å bare liste filer med en prikk?
Hvorfor viser dir *. * Alle filer og mapper?
Svaret
SuperUser bidragsyter Fleet Command har svaret for oss:
DIR-kommandoen kommer fra en tid da:
- En periode (.) Ble ikke tillatt som et tegn i fil- eller mappens navn
- Fil- og mappens navn ble begrenset til 8 tegn for navn og 3 tegn for utvidelser
Derfor, med den standarden, *. * Mente hva navnet og hva som helst utvidelsen. Det innebar ikke en streng som inneholder en ".", Som kanskje eller ikke har tegn før eller etter ".".
Microsofts policy er å bevare bakoverkompatibilitet, slik at tolkningen av *. * Beholdes. Men i Windows PowerShell betyr *. * En streng som inneholder en ".", Som kanskje eller ikke har tegn før eller etter ".".
Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.