如何使用純數位擴充[正規表示式] Windows 處理文件

如何使用純數位擴充[正規表示式] 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
)
  • /rswith 告訴findstr使用正規表示式進行搜索
  • /eswitch 匹配行尾的模式

findstr也是充滿怪癖,所以你已經被警告過。

相關內容