Como processar arquivos com extensão puramente numérica [regex] Windows

Como processar arquivos com extensão puramente numérica [regex] Windows

Janelas, lote. Quero processar arquivos em lote para loop. O problema é: não tenho ideia de qual será exatamente a extensão. O que sei é que será um número.

Então, o que estou tentando criar é algo assim:

@echo off
For %%X in ("%cd%\*.[0-9]+") do (
  processFile.vbs %%X %%X.csv
  sed -i s/\/t/;/g %%X.csv
  sed -i s/,/:/g %%X.csv
)

Mas regex como eu coloquei no loop for não parece funcionar no Windows.

Responder1

Você precisa canalizar dira saída do comando para o findstr, que suportaconjunto limitadode expressões regulares. Fonte:Script em lote para excluir arquivos com base em findstr regex

Infelizmente, +o token não é suportado, então aqui está minha melhor chance (obrigado,Scott!):

@echo off
for /f "tokens=*" %%X in ('dir /b ^| findstr /r /e \.[0-9][0-9]*') do (
    processFile.vbs %%X %%X.csv
    sed -i s/\/t/;/g %%X.csv
    sed -i s/,/:/g %%X.csv
)
  • /rswicth diga findstrpara pesquisar usando regex
  • /eswitch corresponde ao padrão no final de uma linha

Também findstrécheio de peculiaridades, então você foi avisado.

informação relacionada