순수 숫자 확장자로 파일을 처리하는 방법 [ regex ] Windows

순수 숫자 확장자로 파일을 처리하는 방법 [ regex ] Windows

윈도우, 배치. 일괄 for 루프로 파일을 처리하고 싶습니다. 문제는 확장이 정확히 무엇인지 전혀 모른다는 것입니다. 내가 아는 것은 그것이 숫자일 것이라는 것이다.

그래서 제가 만들려고 하는 것은 다음과 같습니다.

@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
)
  • /rfindstr정규식을 사용하여 검색하라고 알려주세요.
  • /e스위치는 줄 끝의 패턴과 일치합니다.

findstr특이한 점이 가득하다, 그래서 당신은 경고를 받았습니다.

관련 정보