Script em lote do Windows para substituir uma palavra em um nome de arquivo

0

Eu tenho um usuário que cria vários conjuntos exportados de texturas a partir de um programa de edição visual que ele usa diariamente. Quando estes exportam, os nomes dos arquivos aparecem com um padrão de "textura *" (por exemplo, texture_43522, texture511235, texture-341231).

O que meu usuário precisa é de um script que possa ser executado em um desses diretórios exportados para adicionar a letra "b" ao final da textura da palavra, para que ele possa importar essas texturas corretamente para a próxima etapa de seu fluxo de trabalho. (por exemplo, textura b _43522, textura b 511235, textura b -341231)

Encontrei uma pergunta semelhante aqui: pergunta semelhante, substituindo" - "por" _ ", mas eu não sou bem versado em scripts em lote e sou incapaz de descobrir como injetar o padrão" textura "no script em vez do traço.

Qualquer orientação, referência ou exemplos de código são bem-vindos.

EDITAR:

Uma solução que acabei usando:

Get-ChildItem -Filter "*texture*" -Recurse | Rename-Item -NewName {$_.name -replace 'texture','textureB' } 

Por favor, veja a resposta da nixda abaixo e use a melhor para sua situação

    
por Miguet Schwab 01.09.2015 / 19:15

1 resposta

0

Espero que o PowerShell como sucessor de CMDs esteja ok

Dir D:\test | Where {$_ -notmatch '^textureb' } | ForEach {
    Ren $_.Fullname $_.Name.Replace('texture','textureb')
}
    
por 01.09.2015 / 19:37