Как обрабатывать файлы с чисто числовым расширением [regex] Windows

Как обрабатывать файлы с чисто числовым расширением [regex] Windows

Windows, пакет. Я хочу обрабатывать файлы пакетом для цикла. Проблема в следующем: я понятия не имею, какое именно расширение будет. Я знаю, что это будет число.

Итак, я пытаюсь создать что-то вроде этого:

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

Но регулярное выражение, которое я вставил в цикл for, похоже, не работает в Windows.

решение1

Вам необходимо передать dirвывод команды в findstr, который поддерживаетограниченный наборрегулярных выражений. Источник:Пакетный скрипт для удаления файлов на основе регулярного выражения findstr

К сожалению, +токен не поддерживается, поэтому вот мой лучший выход (спасибо,Скотт!):

@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 говорит findstrискать с помощью регулярных выражений
  • /eпереключатель соответствует шаблону в конце строки

Также findstrявляетсяполный причуд, так что вы предупреждены.

Связанный контент