在批处理中搜索所选文件名中的多个模式

时间:2015-11-17 17:32:48

标签: regex

示例:

Set pat1='ab'
Set pat2=de-fu

For %%i in (*.xml) do (
  Find in %%i filename the following pattern:
     Anything+%pat1%+followed by a number 1-2 [1-2]+anyting+%pat2%
)

基本上重要的是匹配xml文件名(不在内容中):

%pat1%[1-2] + %pat2% 
  1. Pat1内容可以是文件名中的任何位置
  2. [1 OR 2]必须完全属于pat1内容。
  3. pat2的内容应该是文件名或任何地方的内容,无关紧要。
  4. 如果模式匹配,则能够对文件应用操作。
  5. 提前感谢所有帮助。

    此致 萨诺斯

1 个答案:

答案 0 :(得分:1)

我现在使用这样的东西,它似乎覆盖了大多数情况。希望。如果有任何改进的方法会很好:

echo.!Name! | findstr /R /I "[^-]%%a[12\']..">Nul && (
    SET Flag=1
) || (
    Echo Checking .......
)
echo.!Name! | findstr /I %%b>Nul && (
   IF !Flag!==1 (
      Echo File: !Name!: Match: "[^-]%%a[12\'].." AND %%b
   )
) || ( 
   Echo Checking.......
)