it-swarm-pt.tech

Como posso massa renomear arquivos?

Eu tenho um monte de arquivos nomeados com o padrão 99 - DescriptiveName.txt e eu gostaria de remover o número da frente, então eu só tenho DescriptiveName.txt.

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

124
BIBD

Eu sei em seu título que você diz "in dos", mas tenho a impressão de que você está apenas procurando uma maneira de fazer isso e está se perguntando se essa é a melhor maneira.

A melhor ferramenta absoluta que eu encontrei para isso é Bulk Rename Utility .

Bulk Rename Utility

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

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

Ah, e éLIVREpara uso pessoal.

93
Jim McKeeth

Um pequeno script do PowerShell:

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

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

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

Que transforma coisas como '01 - Beginning.mp3 'em' Beginning - 01.mp3 '.

Use o parâmetro -WhatIf em Rename-Item para verificar as renomeações antes de emiti-las.

56
Joey

AntRenamer torna muito fácil definir um padrão de renomeação; há muitos já preparados (e dá uma prévia das ações):

AntRenamer

Livre para uso pessoal e comercial.

24
Gnoupi

Se você realmente quer usar a linha de comando do Windows (se você não quiser baixar algo), você pode fazer assim:

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

A primeira linha gera a lista de arquivos em um arquivo chamado fileList.txt. A segunda linha separa cada um dos nomes na lista em 3 partes, o #, o "-" e o resto do nome. Para cada um deles, o comando renomear.

24
zdan

moda antiga:

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

Em seguida, use um editor para remover o que você não precisa e modifique as partes de que você precisa. Adicione um "@echo off" como a linha superior, salve-o e execute-o.

19
WireGuy

Outra opção:Massive File Renamer

Permite facilmente renomear multiple arquivos e extensões de arquivo . É muito rápido e simples!

Para usuários avançados e desenvolvedores, é possível usar expressões regulares .

Veja em ação:

enter image description here

16
IvanRF

Eu uso Total Commander ferramenta multi-rename (ctrl + M) para coisas como esta. Sua ferramenta útil, uma das muitas para contar, é fácil de usar e também pode empregar expressões regulares e modelos, se necessário. Ah, e, obviamente, dá-lhe uma pré-visualização antes de fazer qualquer alteração.

Esta é a terceira ou quarta pergunta que eu respondi recomendando o Total Commander ... Eu deveria estar recebendo uma comissão deles ;-)

13
Yuval

A ferramenta com a qual fiquei satisfeito é ReNamer . Ele também suporta o salvamento de regras de renomeação, o que tem sido útil para mim, já que muitas vezes faço as mesmas renomeações.

Abaixo está um exemplo de como excluir o texto antes do primeiro traço, mas há muitas outras regras que você pode definir.

enter image description here

11
Esko Luontola

Eu usei Free Commander Portable (freeware) para isso para um bom efeito:

  1. Selecione ou navegue até os arquivos ou diretórios para renomear
  2. Pressione [Ctrl-M] (ou Arquivo> Multi-renomear)
  3. preencha os campos como faz sentido para sua circunstância
  4. verifique se a pré-visualização mostra o que você espera
  5. Vai!
5
matt wilkie

Para usuários avançados e desenvolvedores, gostaria de sugerir RegexRenamer .

RegexRenamer screenshot

Pro's:

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

Con:

  • Não é uma linha de comando! :)
4
bytebuster

Eu descobri RenPhoric cerca de um mês atrás. Excelente. E é livre .

Nenhuma interface complicada e eu fui rapidamente capaz de mudar o nome exatamente como eu queria. Regular Expression capaz. Não usei mais nada desde então.

3
Umber Ferrule

A maneira mais fácil seria usar Rename Master .

3
Kevin Panko

Aqui está umlinha de comandosolution --- um programa Java que escrevi especificamente para facilitar o trabalho com "padrões" em nomes de arquivos. É grátis e de código aberto, então sinta-se à vontade para modificá-lo:

RenameWand
http://renamewand.sourceforge.net/

Alguns exemplos de uso relevantes:

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

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

Prefira um número de 3 dígitos ao nome do arquivo, classificando pela hora da última modificação:

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

Reorganize partes do nome do arquivo e altere o caso:

Java -jar RenameWand.jar  "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
Zach Scrivena

Como @zdan acima, eu fiz isso pela linha de comando (usando "cmd.exe" no Windows). Demorou alguns ajustes para o meu caso particular, mas um pouco de pesquisa resolveu isso.

Como zdan, envio a lista para um arquivo TXT, depois usei tokens e delims para renomear os arquivos de acordo. No meu caso, comecei com uma lista de arquivos nomeados assim:

name-01-02-2012.csv

Eu queria que a parte da data do arquivo estivesse na ordem y/m/d, com a parte "name" no final para que ela fosse lida assim:

2012-01-02-name.csv

Para fazer isso em massa, usei o seguinte código. Observe que, ao fazer isso, TODAS as partes do nome do arquivo são consideradas, incluindo a extensão ".csv". Isso me divertiu 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

O tokens são as "partes" do nome do arquivo, o 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 o aplicativo "Renomear em massa". Como outros já mencionaram, o GUI é atroz e pouco intuitivo. Com um pouco de pesquisa e codificação simples, essas coisas podem ser feitas de maneira muito eficiente e rápida.

2
gtr1971

Nome engraçado e ferramenta de linha de comando muito poderosa, muito rápida e extremamente fácil de usar. "Encontre e substitua o texto" FART http://fart-it.sourceforge.net/ FUNCIONA GRANDE! pode renomear palavras em arquivos txt também.

USO

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
2
user212780

O script multi rename é uma alternativa de código aberto à ferramenta Total Commanders Multi Rename, que você pode usar como script. Pode usar plugins TC para informações de metadados.

https://code.google.com/p/multi-rename-script/ http://multi-rename-script.googlecode.com/svn/trunk/docs/res/MRS.PNG

2
majkinetor
 @ echo off 
 setlocal enabledelayedexpansion 
 defina X = 5 
 defina FOLDER_PATH =. 
 pushd% FOLDER_PATH% 
 para %% f in (*) faça se %% f neq% ~ nx0 (
 defina "nome do arquivo = %% ~ nf" 
 defina "nome do arquivo =! nome do arquivo: ~% X%!" 
 ren "%% f" "! filename! %% ~ xf" 
) 
 popd 
 

salve isso em um arquivo de lote e execute

2
bbm123

Eu gosto do Cylog's WildRename . É poderoso, mas fácil de usar e tem muitos recursos:

  1. velozes
  2. manipulação de string
  3. contadores
  4. curingas
  5. expressões regulares
  6. substituição
  7. conversão de casos
  8. exploração madeireira
  9. simulação (mostra os resultados sem aplicá-los)

enter image description here

2
Synetech

Eu uso o Blackboard para ministrar cursos em uma universidade. Quando eu faço o download de uma tarefa em massa (no Blackboard, clique em cima da coluna de classificação e, em seguida, "download do arquivo de atribuição") adiciona um monte de material extra ao nome do arquivo, geralmente tornando o nome muito longo para ser válido no Windows.

Veja como eles se parecem:

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

E é isso 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). Em seguida, execute este comando para colocar todos os nomes de arquivos em um documento.

dir /b >filelist.txt

Edite o documento e remova os nomes das pastas, etc.

Use este comando para substituir o Blackboard adicionado nome do arquivo com apenas o nome de usuário e extensão de arquivo.

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 isso ajude alguém também.

1
Webmentorman

Eu desenvolvi um JScript/utilitário de linha de comando em lote chamado JREN.BAT que pode renomear arquivos ou pastas, executando uma pesquisa de expressão regular e substituir os nomes. É um script puro que será executado nativamente em qualquer máquina Windows de XP para frente. A documentação completa está incorporada no script.

Supondo que o JREN.BAT esteja em seu diretório atual, ou melhor ainda, em algum lugar dentro do seu caminho, então sua tarefa de renomeação se torna 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 subdiretórios.

1
dbenham

Aqui está outro programa simples chamado File Attribute Changer que você pode usar para renomear arquivos. É um programa portátil, então você pode carregá-lo em um drive USB.

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

1
Brian

Se você precisa de muito poder e está disposto a desembolsar o dinheiro ... O PowerGrep é uma das ferramentas mais poderosas e versáteis do mercado ... você pode renomear quase tudo com o PowerGrep ... até mesmo pesquisa binária e substitua ... é criado por RegEx Guru, Jan Goyvaerts .

enter image description here

0
Eddie B