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 dir
die 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
)
/r
swicth tellfindstr
zum Suchen mit regulären Ausdrücken/e
Schalter entspricht dem Muster am Ende einer Zeile
findstr
Ist auchvoller Macken, Sie wurden also gewarnt.