Ir ao conteúdo
  • Cadastre-se

Outro Alterar nome de varios arquivos via cmd MSDOS


Posts recomendados

Ola pessoal!

Preciso alterar os nomes de todos os arquivos que tenho numa pasta, porém mantendo o final da estrutura do arquivo inicial....

Por exemplo,

Tenho os arquivos:

NOME_DO_ARQUIVO_2021_01_13.txt
NOME_DO_ARQUIVO_2021_01_14.txt

E preciso que fiquem como:

TESTE_NOVO_ARQUIVO_2021_01_13.txt
TESTE_NOVO_ARQUIVO_2021_01_14.txt

Se utilizar a opção "rename" do cmd, ele retira parte do conteudo original, ficando assim:

Comando usado:
C:\>rename "\\caminho_onde_esta_o_arquivo\NOME_DO_ARQUIVO_*.txt" TESTE_NOVO_ARQUIVO_*.txt

Resultado:
TESTE_NOVO_ARQUIVO_1_01_13.txt
TESTE_NOVO_ARQUIVO_1_01_14.txt

Em resumo, preciso alterar apenas "NOME_DO_ARQUIVO_" para "TESTE_NOVO_ARQUIVO_" , sem perder o conteudo final (2021_01_13.txt ... 2021_01_14.txt ...)

 

Como fazer isso?

 

Obrigado

Link para o post
Compartilhar em outros sites

@Valter Martins Se bem me lembro o DOS tem limite de tamanho de nome de arquivos (acho que são 16 caracteres).

Revendo aqui, o DOS pré windows 95 tinha limitação de 8 caracteres. Depois disso foi estabelecido em 255 caracteres para FAT32.

Seria então limitação do comando?

Link para o post
Compartilhar em outros sites

Copie o código abaixo, cole no bloco de notas, salve com nome de renomear.bat, copie o arquivo renomear.bat para a pasta onde estão os arquivos que você quer renomear. Clique sobre o bat, informe a frase original e a pela qual você quer substituir:

 

@echo off
SetLocal EnableDelayedExpansion
set Pasta=%~dp0

:Inicio
CLS
ECHO.
Echo Informe a frase que deseja substituir
echo. 
set /p "Original=Original: "
echo.
Echo Informe a nova frase
echo.
set /p "Substituir=Substituir: "

for /f "Delims=" %%a in ('dir /b /a-d ^|find /v "%~nx0"') do (
set "Nome=%%a"
call :Renomear
)
echo.
pause
goto :Inicio

:Renomear
set "Nome2=!Nome:%Original%=%Substituir%!"
IF NOT "%Nome%"=="%Nome2%" ren "%Nome%" "%Nome2%"
:EOF

 

ZYfQBz7.gif

  • Curtir 3
Link para o post
Compartilhar em outros sites

@WOZ Dods Acredito que nao, o que estou vendo é que o comando "rename" substitui o texto do arquivo original, baseado em sua quantidade de caracteres que é colocado pra atualizar...

Por exemplo,

 

Se tenho o texto original = "TESTE_ARQUIVO_000222444",

E quero renomear "TESTE_ARQUIVO_" para   "NOVO_TESTE_ARQUIVO_"

O arquivo ficara com o nome "NOVO_ESTE_ARQUIVO_2444" .

 

Nao sei se ficou claro....

 

 

Link para o post
Compartilhar em outros sites

O comando REN ou rename presume o restante se você não estipular a sentença toda (algo que não existia no DOS clássico). Você tem que escrever o nome completo e a extensão (.xxx).

Link para o post
Compartilhar em outros sites

@WOZ Dods Isso mesmo! mas quando utilizo o REN, ele sobrepõe o conteudo final que gostaria de ter no novo arquivo...

Ou seja,

tenho um arquivo como exemplo chamado ARQUIVO_20210114.txt (nomedoarquivo + dataatual).

Preciso renomear para NOVOARQUIVO_20210114.txt

Usando o REN, ele sobrepõe parte da data, ficando assim: NOVOARQUIVO_0114.txt.

 

Vi que consigo extrair o final do arquivo da seguinte forma:

 

set arquivo=ARQUIVO_20210114.txt

set novo=%arquivo:~8,8%

echo %novo%

 

porém tenho ao menos 20  arquivos numa pasta para atualização...

 

@ricardo_br nesse caso uso o prompt como unidade de testes desses codigos para aplicar na solução ...rs

Link para o post
Compartilhar em outros sites

@ricardo_br Muito bom Ricardo! Peguei o codigo que me passou e funcionou muito bem! 
Agora uma duvida, ate mesmo com o ultimo codigo que enviou ...

 

Se eu precisar informar um caminho especifico, ao invés de executar diretamente na pasta ...

Como faço isso?

Ou seja, quero que, por exemplo, seja renomeado os arquivos localizados em C:\Users\Valter\Documents\PastaTeste ...

 

Vejo que:

for /f "Delims=" %a in ('dir /b /a-d') do

é como um Foreach dentro da pasta em questao ...

 

 

Neste caso, se precisar executar esse comando fora da pasta, mas apontando o caminho onde deverá ser renomeados...Como faço? 

Substituo  in ('dir /b /a-d') por in "C:\Users\Valter\Documents\PastaTeste" ?

 

 

Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!