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

Como posso renomear ficheiros em massa?

Tenho um monte de ficheiros com o nome de um padrão 99 - DescriptiveName.txt e gostaria de remover o número da frente para ter apenas DescriptiveName.txt.

Como posso fazer isto? Posso fazê-lo a partir da linha de comando ou existe algum utilitário que o possa fazer?

Respostas (22)

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

Sei que no seu título diz “in dos” mas tenho a impressão de que está apenas à procura de uma forma de o fazer e pergunto-me se essa será a melhor forma.

A melhor ferramenta que encontrei para isto é Bulk Rename Utility .

Não é uma ferramenta de linha de comando, mas eles têm uma versão de linha de comando se você realmente quer usá-la dessa maneira.

Eu usei muito a versão GUI, e é muito poderosa, muito rápida e extremamente fácil de usar.

Oh, e é FREE para uso pessoal.

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

Um pequeno script PowerShell:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

Combinado com expressões regulares mais complexas, isto pode tornar-se algo como:

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

O que transforma coisas como ‘01 - Beginning.mp3’ em ‘Beginning - 01.mp3’.

Utilize o parâmetro -WhatIf no Rename-Item para verificar as renomeações antes de as emitir.

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

O AntRenamer facilita bastante a definição de um padrão de renomeação; há muitos já preparados (e dá uma prévia das acções):

Grátis para uso pessoal e comercial.

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

Se realmente quiser usar a linha de comando do windows (se não quiser descarregar algo), pode fazê-lo assim:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

A primeira linha produz a lista de ficheiros para um ficheiro chamado fileList.txt. A segunda linha separa cada um dos nomes da lista em 3 partes, o #, o “-” e o resto do nome. Para cada um deles faz o comando renomear.

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

old school:

Você pode fazer um DIR e redirecionar a saída para um arquivo, como em DIR *.TXT >TEMP.BAT

Depois use um editor para pegar o que você não precisa e modificar as peças que você precisa. Adicione um “@echo off” como a linha de topo, guarde-o e execute-o.

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

Outra opção: * Massive File Renamer **

Permite facilmente renomear múltiplos** ficheiros e extensões de ficheiros***. É muito rápido e simples!

Para utilizadores avançados e programadores, é possível utilizar expressões regulares*.

Veja em acção:

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

Eu uso a ferramenta multi-renome Comandante Total (ctrl+M) para coisas como esta. A sua ferramenta útil, uma das muitas para contar, é fácil de usar, e pode também empregar expressões regulares e templates, se necessário. Oh, e obviamente dá-lhe uma prévia antes de fazer quaisquer alterações.

Esta é a terceira ou quarta pergunta a que respondi recomendando o Comandante Total… Devia estar a receber uma comissão deles ;-)

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

A ferramenta com a qual tenho estado satisfeito é ReNamer . Suporta também a poupança de renomear regras, o que me tem sido útil, pois muitas vezes faço as mesmas renomeações.

Abaixo está um exemplo de como apagar texto antes do primeiro traço, mas existem muitas outras regras que podem ser definidas.

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

Utilizei Free Commander Portable (freeware) para este efeito:

  1. Seleccione ou Navegue até aos ficheiros ou directórios para renomear
  2. Pressione
4
4
4
2013-01-03 10:47:45 +0000

Para utilizadores e programadores avançados, sugiro RegexRenamer .

Pro’s:

  • UI muito simples;
  • Expressões regulares que os programadores conhecem;
  • GPLv2;

Con’s:

  • Não é uma linha de comando! :)
3
3
3
2009-08-23 06:16:40 +0000

Aqui está uma solução command-line* — um programa Java que escrevi especificamente para facilitar o trabalho com “padrões” em nomes de ficheiros. É gratuito e de código aberto, por isso sinta-se à vontade para o modificar:

RenameWand* http://renamewand.sourceforge. net/

alguns exemplos de uso relevantes:

Largue tudo antes do "-" no nome do ficheiro:

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

Preencha um número de 3 dígitos com o nome do ficheiro, ordenando por último tempo modificado:

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

Reorganize partes do nome do ficheiro, e mude a caixa:

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

Descobri o RenPhoric há cerca de um mês. Excelente. E é free.

Sem interface complicada e rapidamente fui capaz de renomear exactamente como queria. Expressão regular capaz. Não usei mais nada desde então.

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

A forma mais fácil seria utilizar 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

guardam isto num ficheiro de lote e executam

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

Nome engraçado e ferramenta de linha de comando muito poderosa, muito rápida e extremamente fácil de usar. “Find And Replace Text” FART http://fart-it.sourceforge.net/ WORKS GREAT! pode renomear palavras também em ficheiros txt.

USAGE

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

Multi rename script é uma alternativa de código aberto à ferramenta Total Commanders Multi Rename que você poderia conduzir através de script. Pode utilizar plugins TC para informação de metadados. https://code.google.com/p/multi-rename-script/

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

Gosto de Cylog’s WildRename . É poderoso, mas fácil de usar, e tem muitas características:

  1. rápido
  2. manipulação de cordas
  3. contadores
  4. wildcards
  5. expressões regulares
  6. substituição
  7. conversão de casos
  8. registo
  9. Simulação* (mostrar os resultados sem os aplicar efectivamente)

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

Como @zdan acima, eu fiz isso por linha de comando (usando “cmd.exe” no Windows). Foi preciso algum ajuste para o meu caso em particular, mas uma pequena pesquisa resolveu-o.

Como zdan, eu produzi a lista para um ficheiro TXT, depois usei tokens e delims para renomear os ficheiros em conformidade. No meu caso, comecei com uma lista de ficheiros assim nomeados:

name-01-02-2012.csv

Eu queria que a parte da data do ficheiro estivesse em ordem y/m/d, com a parte do “nome” no final para que ficasse assim:

2012-01-02-name.csv

Para fazer isto en-masse, usei o seguinte código. Note que ao fazer isto desta forma, todas as partes do nome do ficheiro são consideradas, incluindo a extensão de “.csv”. Isso me deu uma sensação de patetice na primeira vez.

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

Os tokens são as “partes” do nome do arquivo, os delims são os separadores. Note que no meu caso, eu tinha 2 delimitadores (um traço e um ponto).

Eu pessoalmente não ligo para a aplicação “Bulk Rename”. Como outros já referiram, a GUI é atroz e pouco intuitiva. Com um pouco de pesquisa e uma codificação simples, estas coisas podem ser feitas muito mroe de forma eficiente e rápida.

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

Desenvolvi um utilitário de linha de comando híbrido JScript/batch chamado JREN.BAT que pode renomear arquivos ou pastas realizando uma pesquisa de expressão regular e substituir nos nomes. É um script puro que será executado nativamente em qualquer máquina Windows a partir do XP. A documentação completa está incorporada no script.

Assumindo que JREN.BAT está no seu directório actual, ou melhor ainda, algures no seu caminho, então a sua tarefa de renomeação torna-se trivial.

jren "^\d+[-]+(.+)\.txt$" "$1" /i

ou

jren "^\d+[-]+(?=.+\.)" "" /fm "*.txt"

Existem muitas opções, incluindo a opção /S que executa recursivamente a renomeação em subdirectórios.

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

Utilizo o Blackboard para administrar cursos numa Universidade. Quando descarrego um trabalho em massa (no Quadro Negro, clique no topo da coluna de classificação, depois “download do ficheiro do trabalho” o Quadro Negro adiciona um monte de coisas extra ao nome do ficheiro - muitas vezes tornando o nome do ficheiro demasiado longo para ser válido no Windows.

Aqui está como eles são:

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

E era isto que eu queria

studentname.docx

Então eu usei a abordagem que @zdan e @gtr1971 aconselharam, abrindo uma janela de comando na pasta com os arquivos dentro (CMD.EXE). Depois execute este comando para colocar todos os nomes dos ficheiros num documento.

dir /b >filelist.txt

Editar o documento e remover os nomes das pastas, etc.

Use este comando para substituir o material adicionado ao Blackboard pelo nome de utilizador e extensão do ficheiro.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Espero que isto ajude outra pessoa também.

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

Aqui está outro programa simples chamado File Attribute Changer que você pode usar para renomear arquivos. É um programa portátil, por isso pode carregá-lo numa drive 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

Se precisa de poder a sério e está disposto a gastar o dinheiro… PowerGrep é uma das ferramentas mais poderosas e versáteis do mercado… pode renomear quase tudo com o PowerGrep… até pesquisa binária e substituir… é criada pelo RegEx Guru, Jan Goyvaerts .

Questões relacionadas

3
19
10
28
3