Se houver sempre um _
após os primeiros caracteres x, o seguinte funcionará a partir da linha de comando (nenhum lote é necessário)
for /d %A in (*) do @for /f "delims=_ eol=_" %B in ("%A") do ren "%A" "%B"
Duplique as porcentagens se você colocar o comando acima em um script em lote.
Se você não pode confiar em _
após os primeiros caracteres x, então este comando deve funcionar a partir da linha de comando, preservando os 8 primeiros caracteres:
for /d %A in (*) do @set "folder=%A"&call ren "%^folder%" "%^folder:~0,8%"
Ou você pode usar esse script em lote para preservar os primeiros 8 caracteres:
@echo off
setlocal disableDelayedExpansion
for /d %%A in (*) do (
set "folder=%%A"
setlocal enableDelayedExpansion
ren "!folder!" "!folder:~0,8!"
endlocal
)
Ou você pode usar meu utilitário de renomeação de expressão regular JREN.BAT . É um script puro (lote híbrido / JScript) que é executado nativamente em qualquer máquina Windows do XP em diante - não é necessário nenhum arquivo exe de terceiros.
Remover tudo desde o primeiro _
em diante
jren "_.*" "" /d
Preserve os primeiros 8 caracteres
jren "^(.{8}).*" "$1" /d
Nota:
Se você estivesse tentando renomear arquivos em vez de pastas, poderia fazer algo como
ren *.txt ????????.txt
Mas, infelizmente, você não pode usar curingas ao renomear pastas. Portanto, essa técnica é inútil para pastas. Veja Como o comando Windows RENAME interpreta curingas? para mais informações.