So verarbeiten Sie Dateien mit rein numerischer Erweiterung [ regex ] Windows

So verarbeiten Sie Dateien mit rein numerischer Erweiterung [ regex ] Windows

Windows, Batch. Ich möchte Dateien in einer Batch-For-Schleife verarbeiten. Das Problem ist: Ich habe keine Ahnung, was genau die Erweiterung sein wird. Was ich weiß, ist, dass es eine Zahl sein wird.

Ich versuche also, ungefähr Folgendes zu erstellen:

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

Aber reguläre Ausdrücke wie die, die ich in die For-Schleife eingegeben habe, scheinen unter Windows nicht zu funktionieren.

Antwort1

Sie müssen dirdie Befehlsausgabe an weiterleiten findstr, was unterstütztbegrenzte Mengevon regulären Ausdrücken. Quelle:Batch-Skript zum Löschen von Dateien basierend auf Findstr-Regex

Leider +wird Token nicht unterstützt, also hier mein Versuch (danke,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 tell findstrzum Suchen mit regulären Ausdrücken
  • /eSchalter entspricht dem Muster am Ende einer Zeile

findstrIst auchvoller Macken, Sie wurden also gewarnt.

verwandte Informationen