Zmiana nazw plików i katalogów w CMD (REN i RENAME)

CMDDzisiejsza porada dotyczy starego DOS-owego polecenia RENAME ( lub jak ktoś woli REN), które Windowsy obsługują po dzień dzisiejszy. Do czego nam umiejętność zmiany nazw plików i folderów w Wierszu Poleceń, gdy w GUI możemy to robić łatwo, przyjemnie – i jeśli jest taka potrzeba – również masowo (zachęcam do odświeżenia sobie porady Rafała)?

Otóż, odpowiedź jest prosta: automatyzowanie zadań skryptami CMD. Mam nadzieję, że poniższe przykłady co nieco wyjaśnią i zachęcą Was to przerzucenia niektórych swoich zadań na Wiersz Poleceń 🙂

Jak zmienić nazwę jednego pliku?

rename g:\raporty\raport.txt raport_archiwum.txt

Jak zmienić rozszerzenie wielu plików (np. z .txt na .doc)?

rename *.txt *.doc

Jak dopisać jakąś frazę do wszystkich plików z dowolnym rozszerzeniem?
( w tym przykładzie każdemu plikowi dopiszemy „_archiwum”)

rename * *_archiwum

To tyle, jeśli chodzi o pliki. Przejdźmy do katalogów 🙂

Jak zmienić nazwę jednego katalogu?

rename g:\stara_nazwa nowa_nazwa

Nazwy ze spacjami podajemy w cudzysłowiach. Zmiana nazwy udostępnionego katalogu usunie udostępnienie (tutaj opisałem jak na nowo utworzyć share ).

Jak dopisać jakąś frazę do wielu katalogów?
Niestety polecenie RENAME samo w sobie na to nie pozwala. Ale znając pętle w CMD, nie sprawi nam to problemu 🙂 W tym przykładzie, do każdego podkatalogu w G:\dane dopiszemy frazę „_archiwum”

for /d %D in („G:\dane\*”) do ren „%D” „%~nxD_archiwum”

Jak dopisać datędo nazwy katalogu?
Użyjemy zmiennej  %date%. Należy jednak upewnić się, że domyślny format daty nie zawiera zakazanych znaków np. ukośników.

rename „g:\do archiwizacji” „archiwum %date%”

Jeśli znacie jakieś ciekawe sztuczki powiązane z tematem, zachęcam do komentowania.

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

5 komentarzy

  1. gajowy napisał(a):

    Ostatnie polecenia zwraca: „Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest niepoprawna.”
    Zapewne dlatego, że polecenie %time% zwraca wynik w postaci gg:mm:ss

    • Łukasz Skalikow napisał(a):

      Dobry Gajowy nigdy nie przeoczy żadnego krzaczka w lesie:)

      No właśnie miałem pierwotnie opisać tu formatowanie dat i godzin, ale uznałem, że to materiał na osobny wpis – ..a babol został 🙂 Dziękuję za uważne czytanie! Zostawmy na razie samo dopisywanie daty.

  2. lobo napisał(a):

    Ja mam pytanie jak zmienić nazwy plików w podkatalogach z preview.jpg na nazwę katalogu w którym się znajduje? Jak definiowana jest zmienna katalog nadrzędny żeby ją podać w komendzie?

    • Łukasz Skalikow napisał(a):

      Takiej zmiennej domyślnie nie ma (jest np. zmienna określająca całą bieżącą scieżkę %cd% ), ale wszystko się da zrobić 🙂

      Nazwę bieżącego katalogu przypisz do nowej zmiennej w ten sposób:

      for %* in (.) do set biezacykatalog=%~n*

      Następnie użyj w swoim skrypcie:

      rename preview.jpg %biezacykatalog%.jpg

  3. Aleksander Orzechowski napisał(a):

    A co jeśli w nazwie folderu ktoś umieścił cudzysłów i system nie chce tego ruszyć… ani z wiersza poleceń (z parametrami s i q) i nawet unlocker 1.9.2 tego nie rusza.

Dodaj komentarz