Cómo procesar archivos con extensión puramente numérica [regex] Windows

Cómo procesar archivos con extensión puramente numérica [regex] Windows

Windows, lote. Quiero procesar archivos por lotes para el bucle. El problema es: no tengo idea de cuál será exactamente la extensión. Lo que sí sé es que será un número.

Entonces lo que estoy tratando de crear es algo como esto:

@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
)

Pero las expresiones regulares como las que puse en el bucle for no parecen funcionar en Windows.

Respuesta1

Tienes que canalizar dirla salida del comando a findstr, que admiteconjunto limitadode expresiones regulares. Fuente:Script por lotes para eliminar archivos según la expresión regular findtr

Lamentablemente, +el token no es compatible, así que aquí está mi mejor opción (gracias,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
)
  • /rSwith le dice findstrque busque usando expresiones regulares
  • /eEl interruptor coincide con el patrón al final de una línea.

También findstreslleno de peculiaridades, entonces estás advertido.

información relacionada