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


9

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

Eu gostaria de ir a partir 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.

Respostas:


16

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), eis 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 expressões regulares.


10

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 que desejar para gerar os novos arquivos, usando entradas dos arquivos existentes (registro de data e hora, nome do arquivo, tamanho etc.) )


O Excel é o melhor gerador de código / script que eu conheço.
840 GvS

3

Embora você possa fazer coisas com um arquivo em lotes, eu 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 insira a descrição da imagem aqui


1

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.


Tentei apenas começando com fileA.m, fileB.m, etc. Em vez de fileA_001.m, fileB_002.m, obtive fileA_001.m, fileA_001 (1) .m, fileA_001 (2) .m, etc.
jacobsee

1

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 do arquivo, se desejar manter a ordem sequencial. 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 (ignorar extensão)
  2. Insira ": File_FolderName: _" como prefixo (ignorar extensão)
  3. Serialize Incremental de 1 etapa 1 repita 1 como Sufixo (ignorar extensão)

insira a descrição da imagem aqui


A renomeação de +1 foi incrível!
Chris Marisic



0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.