2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

Jak mogę masowo zmieniać nazwy plików?

Mam kilka plików o nazwie ze wzorem 99 - DescriptiveName.txt i chciałbym usunąć numer z przodu, więc mam tylko DescriptiveName.txt.

Jak mogę to zrobić? Czy mogę to zrobić z linii poleceń, czy jest jakieś narzędzie, które może to zrobić?

Odpowiedzi (22)

94
94
94
2009-07-30 20:58:54 +0000

Wiem, że w swoim tytule mówisz “in dos”, ale mam wrażenie, że po prostu szukasz sposobu, aby to zrobić i zastanawiasz się, czy to jest najlepszy sposób.

Absolutnie najlepszym narzędziem, jakie znalazłem do tego jest Bulk Rename Utility .

Nie jest to narzędzie z linii poleceń, ale ma ono wersję z linii poleceń jeśli naprawdę chcesz go używać w ten sposób.

Wiele razy używałem wersji z interfejsem graficznym i jest bardzo potężne, bardzo szybkie i niezwykle łatwe w użyciu.

Oh, i jest to FREE do użytku osobistego.

60
60
60
2011-07-13 17:30:08 +0000

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 stać się czymś w rodzaju:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Który zamienia takie rzeczy jak ‘01 - Początek.mp3’ na ‘Początek - 01.mp3’.

Użyj parametru -WhatIf na Rename-Item, aby sprawdzić zmiany nazw przed ich wydaniem.

24
24
24
2009-08-07 17:21:40 +0000

AntRenamer sprawia, że dość łatwo jest zdefiniować wzór zmiany nazwy; jest wiele już przygotowanych (i daje podgląd akcji):

Darmowe do użytku osobistego i komercyjnego.

24
24
24
2009-08-07 17:53:34 +0000

Jeśli naprawdę chcesz użyć linii poleceń windows (jeśli nie chcesz czegoś ściągać), 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

Pierwsza linia wyświetla listę plików do pliku o nazwie fileList.txt. Druga linia dzieli każdą z nazw z listy na 3 części, #, “-” i resztę nazwy. Dla każdej z nich wykonuje polecenie zmiany nazwy.

19
19
19
2009-07-30 21:24:47 +0000

old school:

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 zmodyfikować części, których potrzebujesz. Dodaj “@echo off” jako górną linię, zapisz go i uruchom.

17
17
17
2014-03-18 01:33:41 +0000

Inna opcja: * Massive File Renamer **

Pozwala łatwo nazywać wiele plików i rozszerzeń plików. Jest bardzo szybki i prosty!

Dla zaawansowanych użytkowników i programistów, możliwe jest użycie wyrażenia regularnego.

Zobacz to w akcji:

13
13
13
2009-08-23 08:56:29 +0000

Używam narzędzia Total Commander z wieloma nazwami (ctrl+M) do takich rzeczy. Ich użyteczne narzędzie, jedno ze zbyt wielu do policzenia, jest łatwe w użyciu, a w razie potrzeby może również używać wyrażeń regularnych i szablonów. Oh, i to oczywiście daje Ci podgląd przed dokonaniem jakichkolwiek zmian.

To jest trzecie lub czwarte pytanie, na które odpowiedziałem polecając Total Commander… Powinienem dostać od nich prowizję ;-)

11
11
11
2009-07-30 22:11:57 +0000

Narzędziem, z którego byłem zadowolony jest ReNamer . Obsługuje ono również zapisywanie reguł zmiany nazw, co było dla mnie przydatne, ponieważ wielokrotnie robiłem te same zmiany nazw.

Poniżej znajduje się przykład, jak usunąć tekst przed pierwszym myślnikiem, ale jest mnóstwo innych reguł, które można zdefiniować.

5
5
5
2009-11-27 23:02:30 +0000

Użyłem do tego celu Free Commander Portable (freeware) do dobrego efektu:

  1. Wybierz lub Przejdź do plików lub katalogów, aby zmienić nazwę
  2. Wciśnij
4
4
4
2013-01-03 10:47:45 +0000

Dla zaawansowanych użytkowników i programistów proponuję RegexRenamer .

Pro’s:

  • Bardzo prosty UI;
  • Zwroty regularne, które znają programiści;
  • GPLv2;

Con’s:

  • To nie jest linia poleceń! :)
3
3
3
2009-08-23 06:16:40 +0000

Oto rozwiązanie command-line — program Java, który napisałem specjalnie po to, by ułatwić pracę z “wzorcami” w nazwach plików. Jest wolny i open source, więc możesz go modyfikować:

RenameWand http://renamewand.sourceforge. net/

Niektóre istotne przykłady użycia:

Upuść wszystko przed "-" w nazwie pliku:

java -jar RenameWand.jar "<a> - <b>" "<b>"

Przygotuj 3-cyfrowy numer do nazwy pliku, sortując według ostatnio zmodyfikowanego czasu:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Zmień układ części nazwy pliku, i zmień wielkość liter:

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

Odkryłem RenPhoric około miesiąc temu. Wspaniale. I to jest free.

Brak skomplikowanego interfejsu i szybko mogłem zmienić nazwę dokładnie tak jak chciałem. Regularna ekspresja zdolna. Od tamtej pory nie używałem niczego innego.

3
3
3
2009-07-30 20:37:17 +0000

Najprostszym sposobem byłoby użycie Rename Master .

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

Zapisz to w pliku wsadowym i uruchom

2
2
2
2013-03-30 20:17:45 +0000

Zabawne narzędzie o nazwie i linii poleceń bardzo potężne, bardzo szybkie i niezwykle łatwe w użyciu. “Find And Replace Text” FART http://fart-it.sourceforge.net/ WORKS GREAT! może zmieniać nazwy również w plikach txt.

Wykorzystaj

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&001\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
2
2
2
2013-11-04 09:58:24 +0000

Skrypt wielokrotnej zmiany nazwy jest otwartoźródłową alternatywą dla narzędzia Total Commanders Multi Rename, które można obsługiwać za pomocą skryptu. Może on używać wtyczek TC do informacji o metadanych. https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

Lubię Cylog’s WildRename . Jest potężny, ale łatwy w użyciu i ma wiele funkcji:

  1. szybkie
  2. manipulacja ciągami
  3. liczniki
  4. wieloznaczne
  5. wyrażenia regularne
  6. podstawianie
  7. konwersja przypadków
  8. logowanie
  9. symulacja (pokaż wyniki bez ich faktycznego zastosowania)

2
2
2
2012-09-10 15:11:39 +0000

Podobnie jak @zdan powyżej, zrobiłem to przez linię poleceń (używając “cmd.exe” w Windows). Zajęło mi to trochę majstrowania przy moim konkretnym przypadku, ale trochę badań to rozwiązało.

Jak zdan, wypisałem listę do pliku TXT, następnie użyłem tokens i delims, aby odpowiednio zmienić nazwy plików. W moim przypadku zacząłem od listy plików nazwanych tak:

name-01-02-2012.csv

Chciałem, aby część z datą pliku była w kolejności y/m/d, z częścią “nazwa” na końcu, tak aby brzmiała tak:

2012-01-02-name.csv

Aby to zrobić en-masse, użyłem następującego kodu. Zauważ, że robiąc to w ten sposób, pod uwagę brane są WSZYSTKIE części nazwy pliku, łącznie z rozszerzeniem “.csv”.

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

tokens są “częściami” nazwy pliku, delims są separatorami. Zauważ, że w moim przypadku miałem 2 delimitery (kreska i kropka).

Osobiście nie dbam o aplikację “Bulk Rename”. Jak wspomnieli inni, GUI jest okropny i niezbyt intuicyjny. Przy odrobinie badań i prostego kodowania, te rzeczy można zrobić dużo mroe wydajnie i szybko.

1
1
1
2014-12-01 02:56:58 +0000

Opracowałem hybrydowe narzędzie JScript/batch command line o nazwie JREN.BAT , które może zmieniać nazwy plików lub folderów poprzez wyszukiwanie wyrażeń regularnych i zamieniać je na nazwy. Jest to czysty skrypt, który będzie działał natywnie na dowolnej maszynie z systemem Windows od XP do przodu. Pełna dokumentacja jest wbudowana w skrypt.

Zakładając, że JREN.BAT znajduje się w Twoim aktualnym 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 opcja /S, która rekurencyjnie wykonuje zmianę nazwy w podkatalogach.

1
1
1
2013-03-02 20:08:23 +0000

Używam tablicy do prowadzenia kursów na uniwersytecie. Kiedy ściągam zadanie masowo (w Tablicy, kliknij na górze kolumny ocen, a następnie “ściągnij plik zadania” Tablica dodaje kilka dodatkowych rzeczy do nazwy pliku - często sprawia to, że nazwa pliku jest zbyt długa, aby była ważna w systemie Windows.

Oto jak one wyglądają:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

I to jest to, co chciałem

studentname.docx

Więc użyłem podejścia, które doradzały @zdan i @gtr1971, otwierając okno poleceń w folderze z plikami wewnątrz (CMD.EXE). Następnie wykonaj tę komendę, aby umieścić wszystkie nazwy plików w dokumencie.

dir /b >filelist.txt

Edytuj dokument i usuń nazwy folderów, itp.

Za pomocą tej komendy zastąpisz dodane do Tablicy rzeczy z nazwami plików 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 to pomoże również komuś innemu.

1
1
1
2013-07-10 23:07:13 +0000

Tutaj jest inny prosty program o nazwie File Attribute Changer, który można użyć do zmiany nazwy plików. Jest to program przenośny, więc można go nosić na dysku USB. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Jeśli potrzebujesz poważnej władzy i jesteś gotów wyłudzić pieniądze… PowerGrep jest jednym z najpotężniejszych i najbardziej wszechstronnych narzędzi na rynku… możesz zmienić nazwę prawie wszystkiego z PowerGrepem… nawet wyszukiwanie binarne i zastąpić… to jest stworzone przez RegEx Guru, Jan Goyvaerts .

Pytania pokrewne

3
19
10
28
6