Como processar arquivos com extenson puramente numérico [regex] Windows

0

Windows, lote. Eu quero processar arquivos em lote para loop. O problema é: não tenho idéia do que exatamente a extensão será. O que eu 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 parece não funcionar no Windows.

    
por user1628658 13.03.2015 / 13:11

1 resposta

0

Você precisa canalizar a saída do comando dir para o findstr , que suporta conjunto limitado de expressões regulares. Fonte: Script em lote para excluir arquivos com base em regex de findstr

Infelizmente% token + não é suportado, então aqui está minha melhor foto (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
)
  • /r swicth informa findstr para pesquisar usando regex
  • A opção /e corresponde ao padrão no final de uma linha

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

    
por 13.03.2015 / 13:45