Odpowiedzi:
Wiem, że w twoim tytule mówisz „in dos”, ale mam wrażenie, że po prostu szukasz sposobu na zrobienie tego i zastanawiam się, czy to najlepszy sposób.
Absolutnie najlepsze narzędzie, jakie znalazłem w tym celu, to Narzędzie do zmiany nazwy .
To nie jest narzędzie wiersza polecenia, ale mają wersję wiersza polecenia, jeśli naprawdę chcesz go używać w ten sposób.
Często korzystałem z wersji GUI i jest ona bardzo wydajna, bardzo szybka i niezwykle łatwa w użyciu.
Aha, i jest ZA DARMO do użytku osobistego.
Mały skrypt PowerShell:
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
W połączeniu z bardziej złożonymi wyrażeniami regularnymi może to wyglądać następująco:
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
Co zmienia takie rzeczy jak „01 - Beginning.mp3” w „Beginning - 01.mp3”.
Użyj -WhatIf
parametru on, Rename-Item
aby sprawdzić nazwy przed ich wydaniem.
... -replace '\d+ - ',''
. Ponadto uważam, że pierwszy jest lepszy, po prostu usuwając początek za pomocą wyrażenia regularnego. Chociaż uważam, że powinieneś dołączyć ^ kotwicę na początku wyrażenia, aby pasowała tylko do nazw zaczynających się od cyfr.
-replace
może mieć tylko jeden argument po prawej stronie, w którym to przypadku drugi jest domyślnie pustym ciągiem.
Jeśli naprawdę chcesz użyć wiersza polecenia systemu Windows (jeśli nie chcesz czegoś pobierać), możesz to zrobić w następujący sposób:
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
Pierwszy wiersz wyświetla listę plików w pliku o nazwie fileList.txt. Drugi wiersz dzieli każdą z nazw na liście na 3 części: #, „-” i resztę nazwy. Dla każdego z nich wykonuje polecenie zmiany nazwy.
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
AntRenamer ułatwia zdefiniowanie wzorca zmiany nazwy; jest już wiele przygotowanych (i daje podgląd działań):
Bezpłatnie do użytku osobistego i komercyjnego.
stara szkoła:
Możesz zrobić DIR i przekierować wyjście do pliku, jak w DIR * .TXT> TEMP.BAT
Następnie użyj edytora, aby wyjąć to, czego nie potrzebujesz i zmodyfikuj potrzebne części. Dodaj „@echo off” jako górny wiersz, zapisz go i uruchom.
Inna opcja: Massive File Renamer
Pozwala łatwo zmienić nazwę wielu plików i rozszerzeń plików . To bardzo szybkie i proste!
Dla zaawansowanych użytkowników i programistów możliwe jest użycie wyrażeń regularnych .
Zobacz to w akcji:
Używam narzędzia do wielokrotnej zmiany nazwy Total Commander (ctrl + M) do takich rzeczy. Ich użyteczne narzędzie, jedno z zbyt wielu, by je policzyć, jest łatwe w użyciu, aw razie potrzeby może również wykorzystywać wyrażenia regularne i szablony. Aha, i oczywiście daje podgląd przed wprowadzeniem jakichkolwiek zmian.
To jest trzecie lub czwarte pytanie, na które odpowiedziałem, polecając Total Commander ... Powinienem dostać od nich prowizję ;-)
Narzędziem, z którego jestem zadowolony, jest ReNamer . Obsługuje również zapisywanie reguł zmiany nazw, co było dla mnie przydatne, ponieważ wiele razy robię te same zmiany nazw.
Poniżej znajduje się przykład usuwania tekstu przed pierwszym myślnikiem, ale istnieje wiele innych reguł, które możesz zdefiniować.
Użyłem Free Commander Portable (darmowego oprogramowania), aby uzyskać dobry efekt:
Dla zaawansowanych użytkowników i programistów polecam RegexRenamer .
Pro's:
Cons:
Najłatwiejszym sposobem byłoby użycie Rename Master .
Oto rozwiązanie wiersza polecenia --- program Java, który napisałem specjalnie, aby ułatwić pracę z „wzorami” w nazwach plików. Jest darmowy i open source, więc możesz go zmodyfikować:
RenameWand
http://renamewand.sourceforge.net/
Kilka odpowiednich przykładów użycia:
Upuść wszystko przed "-"
nazwą pliku:
java -jar RenameWand.jar "<a> - <b>" "<b>"
Podaj 3-cyfrowy numer do nazwy pliku, sortując według czasu ostatniej modyfikacji:
java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
Zmień kolejność części nazwy pliku i zmień wielkość liter:
java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
RenPhoric odkryłem około miesiąc temu. Wspaniały. I to za darmo .
Brak skomplikowanego interfejsu i szybko mogłem zmienić nazwę dokładnie tak, jak chciałem. Możliwość wyrażenia regularnego. Od tamtej pory nie korzystałem już z niczego.
Podobnie jak powyżej @zdan, zrobiłem to za pomocą wiersza poleceń (używając „cmd.exe” w systemie Windows). Zajęło mi to trochę majsterkowania w moim konkretnym przypadku, ale trochę badań to rozwiązało.
Jak Ždáň, ja wysyła listy do pliku TXT, następnie wykorzystane tokens
i delims
zmieniać nazwy plików odpowiednio. W moim przypadku zacząłem od listy plików o takich nazwach:
name-01-02-2012.csv
Chciałem, aby część daty pliku była w kolejności r / m / d, z częścią „nazwa” na końcu, aby brzmiała następująco:
2012-01-02-name.csv
Aby zrobić to masowo, użyłem następującego kodu. Pamiętaj, że robiąc to w ten sposób, WSZYSTKIE części nazwy pliku są uwzględniane, w tym rozszerzenie „.csv”. To mnie podnieciło za pierwszym razem.
dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m
Są tokens
to „części” nazwy pliku, delims
są to separatory. Zauważ, że w moim przypadku miałem 2 ograniczniki (kreska i kropka).
Osobiście nie dbam o aplikację „Bulk Rename”. Jak wspomnieli inni, GUI jest okropne i niezbyt intuicyjne. Przy odrobinie badań i prostym kodowaniu można to zrobić szybko i sprawnie.
Zabawna nazwa i narzędzie wiersza poleceń bardzo potężne, bardzo szybkie i niezwykle łatwe w użyciu. „Znajdź i zamień tekst” FART http://fart-it.sourceforge.net/ DZIAŁA WIELKO! może również zmieniać nazwy słów w plikach txt.
Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]
Options:
-h --help Show this help message (ignores other options)
-q --quiet Suppress output to stdio / stderr
-V --verbose Show more information
-r --recursive Process sub-folders recursively
-c --count Only show filenames, match counts and totals
-i --ignore-case Case insensitive text comparison
-v --invert Print lines NOT containing the find string
-n --line-number Print line number before each line (1-based)
-w --word Match whole word (uses C syntax, like grep)
-f --filename Find (and replace) filename instead of contents
-B --binary Also search (and replace) in binary files (CAUTION)
-C --c-style Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
--cvs Skip cvs dirs; execute "cvs edit" before changing files
-a --adapt Adapt the case of replace_string to found string
-b --backup Make a backup of each changed file
-p --preview Do not change the files but print the changes
-f
opcja, zgodnie z listą.
Skrypt do wielokrotnej zmiany nazwy jest otwartą alternatywą dla narzędzia Total Commanders Multi Rename, którą można prowadzić za pomocą skryptu. Może używać wtyczek TC do informacji o metadanych.
@echo wyłączone setlocal włączony opóźniony rozwój ustaw X = 5 ustaw FOLDER_PATH =. pushd% FOLDER_PATH% dla %% f w (*) zrobić, jeśli %% f neq% ~ nx0 ( ustaw „filename = %% ~ nf” ustaw "nazwa_pliku =! nazwa_pliku: ~% X%!" ren "%% f" "! nazwa pliku! %% ~ xf" ) popd
zapisz to w pliku wsadowym i uruchom
set /p "X=Enter the value for X: "
Używam Blackboard do zarządzania kursami na uniwersytecie. Kiedy masowo pobieram zadanie (w Blackboard, kliknij górę kolumny oceniania, a następnie „pobierz plik zadania” Blackboard dodaje kilka dodatkowych rzeczy do nazwy pliku - często sprawia, że nazwa pliku jest zbyt długa, aby była ważna w systemie Windows.
Oto jak wyglądają:
Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx
I tego chciałem
studentname.docx
Wykorzystałem więc podejście zalecane przez @zdan i @ gtr1971, otwierając okno poleceń na folderze z plikami w środku (CMD.EXE). Następnie uruchom to polecenie, aby umieścić wszystkie nazwy plików w dokumencie.
dir /b >filelist.txt
Edytuj dokument i usuń nazwy folderów itp.
Użyj tego polecenia, aby zastąpić dodaną nazwę pliku tablicy tylko nazwą użytkownika i rozszerzeniem pliku.
for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n
Mam nadzieję, że pomoże to również komuś innemu.
Oto kolejny prosty program o nazwie File Attribute Changer, którego możesz użyć do zmiany nazwy plików. To przenośny program, więc możesz go nosić na dysku USB.
Opracowałem hybrydowe narzędzie wiersza polecenia JScript / batch o nazwie JREN.BAT, które może zmieniać nazwy plików lub folderów, wykonując wyszukiwanie wyrażeń regularnych i zastępując nazwy. Jest to czysty skrypt, który będzie działał natywnie na dowolnym komputerze z systemem Windows od XP. Pełna dokumentacja jest osadzona w skrypcie.
Zakładając, że JREN.BAT znajduje się w twoim bieżącym katalogu lub jeszcze lepiej, gdzieś na twojej ścieżce, wtedy zadanie zmiany nazwy staje się trywialne.
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
lub
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
Istnieje wiele opcji, w tym /S
opcja, która rekurencyjnie wykonuje zmianę nazwy w podkatalogach.
Jeśli potrzebujesz poważnej mocy i chcesz wydać pieniądze ... PowerGrep jest jednym z najpotężniejszych i wszechstronnych narzędzi na rynku ... możesz zmienić nazwę prawie wszystkiego dzięki PowerGrep ... nawet wyszukiwanie binarne i zamiana ... stworzył go RegEx Guru, Jan Goyvaerts .