czwartek, 2 kwietnia 2009

Foreach plik w pewnym katalogu rób... (CMD: FOR %A in (c:\*.*) do type %A)



Czy zdarza wam się jeszcze korzystać z linii komend w Windows?
Mnie tak.


Niniejszy post dotyczy dość banalnej sprawy, ale ponieważ od czasu do czasu zdarza mi się to wykorzystywać, więc dla mnie będzie to prosta ściągawka na przyszłość, a mam nadzieję, że może jeszcze przyda się komuś innemu.

Czarne okienko systemu Windows, czyli aplikacja CMD potrafi obsługiwać pętle. Zobaczmy przykład pętli, która ma odczytać logi IIS i wrzucić je do jednego pliku c:\logfile.log:

FOR %A in (C:\WINDOWS\system32\LogFiles\W3SVC1\*.log) do type %A >>c:\logfile.log

Jeszcze ciekawsze jest wykorzystanie pętli do wywoływania podprocedury:

echo off
FOR %%A in (c:\*.*) do CALL :Subroutine %%A
GOTO:EOF
:Subroutine
echo "nazwa pliku bez rozszerzenia: %~n1" "nazwa rozszerzenia: %~x1" "pelna sciezka: %~f1"
GOTO:EOF

Oczywiście to nie wszystko więcej informacji jest dostępnych w pomocy (cmd: help for).

10 komentarzy:

  1. A nie lepiej przejść na PowerShell'a??

    OdpowiedzUsuń
  2. Racja, jest to o wiele bardziej potężne narzędzie ale ma jedną podstawową wadę: W Windows XP trzeba je doinstalować oraz jest ono dostępne tylko dla systemów od Windows XP SP2 w górę.

    Bynajmniej nie chcę promować przedstawionego tu podejścia. Raczej chciałem sobie zrobić mini ściągę na przyszłość... a nóż znowu mi się to przyda, a dzięki temu wiem gdzie jest rozwiązanie ;)

    Pozdrawiam.

    OdpowiedzUsuń
  3. Świetny i bardzo wartościowy wpis. Podoba mi się.

    OdpowiedzUsuń
  4. Chętnie wykorzystam zdobyte tu informacje w praktyce.

    OdpowiedzUsuń

Posty powiązane / Related posts