Automatyzacja w Windows przy użyciu plików wsadowych bat. Jak wyszukać wszystkie pliki jpg, mp3 czy dowolnego innego typu i skopiować je do wybranej lokalizacji?
W świecie okienek ekran terminala to raczej niecodzienny widok, chyba że chodzi o putty jakim logujemy się po ssh. W świecie Linux skrypty to codzienność i każdy kto pracuję z systemami Unixowymi doskonale wie jak obskryptować sobie wykonywanie powtarzalnych czynności. Ostatnio przy okazji konieczności naprawienia laptopa przez nową instalację systemu pojawiło się standardowe zadanie. Czyli "mam tam zdjęcia i piosenki, dobrze było by je zachować..." teraz weź szukaj gdzie użytkownik sobie pochował mp-trójki oraz fotki z wakacji skoro o porządek to już on raczej nie dbał i pliki są wszędzie tam gdzie się aktualnie okienko otworzyło. To samo tyczy się dokumentów i exceli. Nie bardzo chciało mi się to ręcznie przenosić, szukać, łazić po katalogach i ctrl+a potem ctrl+x i w końcu ctrl+v. Przeszło mi przez myśl jak to dobrze w Linux napisać sobie krypt, który wyszuka pliki i potem skopiuje je tam gdzie chce. Ale ale przecież w Windows istnieje programowanie wsadowe. Można również użyć specjalnych programów porządkujących pliki tyle, że nie będziemy tu wyciągać działa by strzelać do muchy przecież chodzi tu o prostą operacje typu znajdź pliki o podanym rozszerzeniu i przenieś w jakieś bezpieczne miejsce ot to i tyle do zrobienia. Wystarczyło chwilę pomyśleć i takie zadanie da się zrobić ala-skryptowo w Windows. By wykonać to zadanie utworzymy plik wsadowy, który wykona wyszukanie wszystkich plików o zadanym rozszerzeniu i przeniesie je do wybranego katalogu.
Krok 1- Tworzymy plik o dowolnej nazwie przy użyciu dowolnego edytora (może być zwykły notatnik albo jak w moim wypadku Notepad++) i dajemy mu rozszerzenie *.bat.
Krok 2 - Jako zawartość pliku wpisujemy :
@echo off
SET /P sciezka="Podaj sciezke do katalogu do ktorego wykonasz kopie plikow np.: C:\test "
mkdir %sciezka%
mkdir %sciezka%\mp3
mkdir %sciezka%\jpg
mkdir %sciezka%\dokumenty
mkdir %sciezka%\exele
for /r C:\ %%f in (*.mp3) do @copy "%%f" %sciezka%\mp3\
for /r C:\ %%f in (*.jpg) do @copy "%%f" %sciezka%\jpg\
for /r C:\ %%f in (*.doc) do @copy "%%f" %sciezka%\dokumenty\
for /r C:\ %%f in (*.xls) do @copy "%%f" %sciezka%\exele\
SETLOCAL
SET ilosc=0
FOR %%f IN (%sciezka%\mp3\*.mp3) DO SET /A ilosc+=1
ECHO.
ECHO.
ECHO Skopiowano %ilosc% plikow *.mp3
ECHO.
set ilosc=0
FOR %%f IN (%sciezka%\jpg\*.jpg) DO SET /A ilosc+=1
ECHO.
ECHO.
ECHO Skopiowano %ilosc% plikow *.jpg
ECHO.
set ilosc=0
FOR %%f IN (%sciezka%\dokumenty\*.doc) DO SET /A ilosc+=1
ECHO.
ECHO.
ECHO Skopiowano %ilosc% plikow *.doc
ECHO.
set ilosc=0
FOR %%f IN (%sciezka%\exele\*.xls) DO SET /A ilosc+=1
ECHO.
ECHO.
ECHO Skopiowano %ilosc% plikow *.xls
ENDLOCAL
Powyższy kod można oczywiście dostosować według własnych potrzeb i wyszukać inne pliki.
Jak to działa ?
Skrypt uruchamiamy klikając na nim dwa razy lub najlepiej z konsoli poleceń. Wywołujemy ją jako CMD z menu "uruchom". Pierwszym krokiem jest podanie lokalizacji do jakiej zostaną skopiowane wyszukane pliki. np.: D:\kopia_zapasowa\. W lokalizacji tej zostaną utworzone katalogi jpg, mp3, dokumenty, excele, do jakich trafią odpowiednie pliki. Na końcu wyświetlone zostaną ilości skopiowanych plików.
Komentarze
Prześlij komentarz