Renomeie o comando cmd wildcard issue

0

Eu tenho arquivos como

test_abc.html
haha_test_someword.js
haha_morehaha_test_continue_test.someextension

Eu quero substituir todo o teste em uma pasta específica de maneira recursiva para tommy. Então a saída se tornaria:

 tommy_abc.html
    haha_tommy_someword.js
    haha_morehaha_tommy_continue_tommy.someextension

Isso é possível no prompt de comando do Windows usando o comando ren?

    
por Tim Liberty 15.12.2017 / 13:08

3 respostas

1

Eu não acredito que o comando ren possa fazer o que você quer sozinho, mas um script em lote que usa ren pode.

Eu respondi a uma pergunta muito semelhante no Stack Overflow ontem. Aqui está uma versão modificada desse script em lote para lidar com o seu problema. Ele lida com várias substituições em um único nome de arquivo:

setlocal ENABLEDELAYEDEXPANSION
set SEARCH_TEXT=test
set REPLACE_TEXT=tommy
for %%A in ("*%SEARCH_TEXT%*") do (
    set OLD_NAME=%%~nxA
    set NEW_NAME=!OLD_NAME:%SEARCH_TEXT%=%REPLACE_TEXT%!
    ren "!OLD_NAME!" "!NEW_NAME!"
)
endlocal

Mais uma vez, o texto de ajuda do comando SET /? pode ser necessário para que você possa ler isso.

    
por 15.12.2017 / 22:46
1

Use um loop for para renomeação recursiva. Curingas para substituição de texto.

for /r %x in (*test*.*) do ren "%x" "*tommy*.*"

Dica: Se executar o comando uma vez não substituir todo o "teste", execute o comando várias vezes ou use outro para loop.

Como usar curingas em ren

Ren recursivo

    
por 15.12.2017 / 13:26
0

PowerShell

gci "C:\files" | ren -n {$_.Name -replace 'test','tommy'}
    
por 15.12.2017 / 20:25