窗口,批次處理。我想批次處理文件 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
)
/r
swith 告訴findstr
使用正規表示式進行搜索/e
switch 匹配行尾的模式
findstr
也是充滿怪癖,所以你已經被警告過。