Zmiana nazw plików i katalogów w CMD (REN i RENAME)
Dzisiejsza 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.
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
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.
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?
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
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.