根据目录中的文件名查找str

问题描述 投票:0回答:1

我想在多个 .xml 文件中搜索特定文本。我在网上找到了这段代码,效果很好。

@echo off
setlocal EnableDelayedExpansion
 
(for /F "delims=" %%a in ('findstr /I /L "<a> <b> <c>" *.xml') do (
   set "line=%%a"
   set "line=!line:*<a>=!"
   set "line=!line:*<b>=!"
   set "line=!line:*<c>=!"
   for /F "delims=<" %%b in ("!line!") do echo %%b
)) > temp.txt

但是代码随机循环遍历目录中的 *.xml 文件,而不是基于文件名。

如何更改此代码以使其根据 xml 文件名或修改日期进行搜索?

在 *.xml 上添加排序但不起作用

xml batch-file cmd
1个回答
0
投票

你不能依赖排序的文件名。 NTFS 会自动按字母顺序对它们进行排序,但 FATx 不会对文件进行排序。新文件只是添加到目录中。因此,您需要另一个

for
循环来对文件进行排序(
dir /on
用于名称排序-有关更多排序选项,请参见
dir /?
)并使用现有循环一次只处理其中一个文件:

@echo off
setlocal EnableDelayedExpansion

(for /F "delims=" %%f in ('dir /b /on *.xml') do (
  for /F "delims=" %%a in ('findstr /I /L "<a> <b> <c>" "%%f"') do (
    etc.
  )
)) > temp.txt

(未经测试)

© www.soinside.com 2019 - 2024. All rights reserved.