it-swarm-pt.tech

Maneira fácil de renomear todos os arquivos em um diretório no Windows

Existe uma maneira fácil de renomear todos os arquivos em um diretório? O PowerShell é o caminho a seguir?

Eu gostaria de passar disso:

c:\family_pics\
   img123.jpg
   img124.jpg

para isso:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

Idealmente, eu gostaria de executar um script em um diretório que renomeie todos os arquivos com base no nome do diretório atual, preservando a extensão e percorra a árvore de diretórios recursivamente.

9
Even Mien

Com base em que tudo pode ser feito em uma linha do PowerShell (assim como tudo também pode ser feito em 1 linha do Perl), aqui está o código PS para um único diretório.

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

Para fazer isso recursivamente, você agruparia o item acima em uma função e a chamaria em todos os diretórios da sua árvore. Você também pode substituir a string de formato por algo um pouco mais sofisticado se precisar usar regexes.

16
user2278

Isso é um pouco hacky, mas eu faço isso há 12 anos e sou bem rápido:

  • Abra um prompt de comando em c:\family_pics e digite dir >> dir.xls
  • Abra o arquivo dir.xls no Excel
  • Destaque a primeira coluna, selecione "Texto em colunas" e adicione quebras de coluna nos caracteres de espaço (ignorando duplicatas)
  • Agora você tem uma boa tabela com seus nomes de arquivos atuais, tamanhos de arquivo, etc.
  • Adicione uma nova coluna "ren" antes do nome do arquivo
  • Adicione uma nova coluna após o nome do arquivo e use as funções do Excel que você deseja gerar para o novo nome do arquivo. No seu caso, se você digitar os dois primeiros nomes de arquivos e clicar duas vezes no canto inferior direito da célula, o Excel detectará automaticamente o padrão e gerará os nomes restantes.
  • Salvar como ren.bat
  • Execute o arquivo em lotes que você acabou de criar e ele renomeará todos os seus diretórios

Embora possa não ser imediatamente óbvio, o Excel é muito adequado para esse tipo de tarefa, porque você pode usar qualquer tipo de fórmula desejada para gerar os novos arquivos, usando entradas dos arquivos existentes ( registro de data e hora, nome do arquivo, tamanho etc.).

10
Portman

Embora você possa fazer coisas com um arquivo em lotes, descobri que é melhor ter mais controle, opções etc. e uma pista visual do que está prestes a acontecer.

Existe uma ferramenta gratuita chamada CKRename. O site do autor original parece ter desaparecido, mas o aplicativo é totalmente funcional e bastante popular (eu o uso há 8 anos). Baixar CKRename

Aqui está uma captura de tela em ação enter image description here

3
scunliffe

ReNamer: http://www.den4b.com/

Consulte também: Como renomear parte de um nome de arquivo a partir de uma seleção de arquivos no Windows?

Solte sua pasta com imagens no ReNamer (as subpastas serão adicionadas recursivamente por padrão). Clique na coluna Nome para classificar por nome de arquivo, se desejar manter a ordem seqüencial. A meta tag especial permitirá que você use o nome da pasta pai para renomear. Use as seguintes regras de renomeação:

  1. Excluir da posição 1 até o final (pular extensão)
  2. Insira ": File_FolderName: _" como prefixo (ignorar extensão)
  3. Serialize Incremental de 1 etapa 1 repita 1 como Sufixo (pular extensão)

enter image description here

1
cagcowboy

Você pode simplesmente destacar todos os que deseja no Explorer e clicar com o botão direito do mouse no primeiro e renomeá-lo e o Windows renomeá-los todos para você com a mesma convenção de nomenclatura.

1
user2287

Total Commander possui alguns recursos interessantes de renomeação de vários arquivos .

Claro que se você gosta de PowerShell solução owenevans parece ótimo.

0
Jakub Šturc

Faça o download do RenameFiles (freeware). É um dos únicos programas que realmente sinto falta desde que mudei do Windows para a Apple.

Parece que está disponível aqui http://it-falke.com/software/renamefiles/us_description.php mas não tenho um PC para testar esse link. A última versão que usei foi 2.1.4. Foi realmente simples, mas versátil.

0
username

isso retira os últimos quatro caracteres (geralmente a extensão)

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

Pode ser necessário adaptar o descrito acima para lidar com espaços ou seus requisitos específicos de renomeação

0
Goyuix