Hvorfor viser kommandoen "dir *.*" alle filer og mapper? - Forklaring og løsninger

Hvordan kan det være, at kommandoen "dir *.*" viser alle filer og mapper, selv dem uden en prik i deres navne? Er der en måde at liste kun filer med en prik i deres navne?

Kommandoen "dir *.*" viser alle filer og mapper, fordi wildcard-tegnene (*) matcher alle mulige navne og udvidelser uden specifik filtrering.

Hvorfor viser kommandoen "dir *.*" alle filer og mapper?

Kommandoen "dir *.*" i kommandoprompten bruges til at vise en liste over filer og mapper i en given mappe. Her er nogle grunde til, at denne kommando viser alle filer og mapper, selv dem uden en prik i deres navne:

  • Wildcard-tegn: Stjernetegnet (*) er et wildcard-tegn, der repræsenterer et vilkårligt antal tegn. Når du bruger "*.*", betyder det, at du søger efter filer og mapper med et vilkårligt navn og en vilkårlig udvidelse.
  • Ingen specifik filtrering: Kommandoen "dir *.*" filtrerer ikke specifikt efter filer med en prik i deres navne. I stedet viser den alle filer og mapper, fordi wildcard-tegnene matcher alle mulige navne og udvidelser.
  • Standardadfærd: Dette er standardadfærden for "dir" kommandoen, når der bruges wildcard-tegn. Den viser alle filer og mapper, uanset om de har en prik i deres navne eller ej.

Hvordan kan man liste kun filer med en prik i deres navne?

Hvis du ønsker at liste kun filer, der har en prik i deres navne (typisk filer med en udvidelse), kan du bruge en mere specifik kommando. Her er nogle måder at gøre det på:

  • Brug af "findstr": Du kan kombinere "dir" kommandoen med "findstr" for at filtrere resultaterne. For eksempel:
    dir /b | findstr "\."
    Dette vil vise kun de filer, der indeholder en prik i deres navne.
  • Brug af "for" loop: Du kan bruge et "for" loop i kommandoprompten til at filtrere filer med en prik i deres navne:
    for %i in (*.*) do @echo %i
    Dette vil liste alle filer med en prik i deres navne.

Ved at bruge disse metoder kan du mere præcist filtrere og vise kun de filer, der har en prik i deres navne.