Bom dia/noite,
Talvez alguém pudesse ajudar, e talvez isso pudesse ajudar outra pessoa. Se observarmos o exemplo abaixo:
01022015- BLABLABLA 04022018 - BLABLABLAB 02012016 - Blablabla
O que eu gostaria de fazer é procurar 02 quando estiver localizado no terceiro e quarto caracteres do nome do arquivo. Algo como procurar “02” após o segundo caractere.
Dessa forma, eu seria capaz de classificar todos os arquivos de fevereiro separadamente e, em seguida, renomeá-los em lote corretamente.
Isso é factível? Abaixo está um exemplo de uma consulta de pesquisa que pode servir de base para desenvolvimento futuro.
Desde já, obrigado ~"(4)"
Responder1
procure o 02 quando estiver localizado no terceiro e quarto caracteres do nome do arquivo.
Use ?
o símbolo padrão que significa "1 caractere fortemente":
DIR ??02*.*
Responder2
Eu acho que você tem sorte desta vez. A Expressão Regular é bastante simples neste caso e pode ser implementada até mesmo noMicrosoft janelas 10Pré-processador de linha de comando.
A expressão regular é ??02*
.
Portanto, você pode corajosamente emitir um comando do sistema operacional, como o RENAME ??02* <New Name>
.
Responder3
for /f tokens^=* %F in ('where /r . "??02*.*"')do rename "%~F" "Some_New_Name%~xF"
- Saída:
rename "G:\SUPER_USER\Q59446122\310220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\110220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\100220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\170220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\030220218.txt" "Some_New_Name.txt"
Tente isto para a pasta atual:
for /f tokens^=* %F in ('where "??02*.*"')do rename "%~F"
- Saída:
rename G:\SUPER_USER\Q59446122\310220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\110220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\100220218.txt Some_New_Name.txt