windows - bat funktion til at finde en fil i mappe og undermapper og gøre noget med det.

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal finde alle filer med specifikt filnavn (for eksempel main.css) i mappe og alle undermapper og derefter gøre noget med det (f.eks. Omdøbe, flytte, slette, tilføje tekstlinje osv.)

Bedste reference


Dette er hvad du har brug for:


for /R \%f in (main.css) do @echo "\%f"


Naturligvis vil du erstatte echo med det, du ønsker at gøre til filen. Du kan bruge jokertegn, hvis du skal:


for /R \%f in (*.css) do @echo "\%f"

Andre referencer 1


Mens dette vil krydse katalogtræet:


for /R \%f in (main.css) do @echo "\%f"


Det matcher ikke filnavne. Det vil sige, hvis du har et træ:


    DirectoryA
        A1
        A2


for/R -operationen vil give\% f af DirectoryA/main.css , derefter DirectoryA/A1/main.css og så videre, selvom main.css findes ikke i nogen af ​​disse mapper. Så for at være sikker på, at der virkelig er en fil (eller mappe), skal du gøre dette:


for /R \%f in (main.css) do @IF EXIST \%f @echo "\%f"


Vær også opmærksom på, at du behøver at citere filnavnet, fordi hvis stien eller filen indeholder mellemrum, kan mappen gå op.


Ovenstående er i det mindste, hvordan det virker i Windows 8.