如何处理纯数字扩展的文件[正则表达式] Windows

如何处理纯数字扩展的文件[正则表达式] 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 正则表达式删除文件的批处理脚本

不幸的是,+token 不受支持,所以这是我最好的尝试(谢谢,斯科特!):

@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 告诉findstr使用正则表达式进行搜索
  • /e开关匹配行末的模式

也是findstr充满怪癖,所以你已经被警告了。

相关内容