标题: [文本处理] 【已解决】求助一个批处理可以搜索此文件夹下所有xml内容的文本 [打印本页]
作者: zhengwei007 时间: 2024-2-29 14:34 标题: 【已解决】求助一个批处理可以搜索此文件夹下所有xml内容的文本
本帖最后由 zhengwei007 于 2024-2-29 23:19 编辑
事情是这样的,比如我有100个XML文件,里面全是纯文本内容。
我想通过一个批处理文件,运行后能找到我想查找的关键词在哪个文件里面存在。
比如有10个文件,我想查找一组数字12345。那么我在批处理中编辑时把12345打进去。
运行后,所有包含12345字符的文件名就提取出来了,然后把所有符合条件的文件名存在sour.txt中即可。
我上传了3个小文件,我在批处理中输入查找关键词:http://www.w3.org,然后保存退出再运行。
得到的结果应该是:
001.xml
002.xml
003.xml
如果没有符合的,直接返回空的就行。谢谢大佬们。
由于文件无法上传,我直接将3个文件中随意拿点出来。
001.xml- <?xml version="1.0" encoding="UTF-8"?>
- <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/multisell.xsd">
- <item>
- <!-- Adena -->
- <ingredient count="2100" id="57" />
- <!-- Shirt -->
- <ingredient count="1" id="21" />
- <!-- Leather Shirt -->
- <production count="1" id="22" />
- </item>
- <item>
- <!-- Adena -->
- <ingredient count="5400" id="57" />
- <!-- Leather Shirt -->
- <ingredient count="1" id="22" />
- <!-- Wooden Breastplate -->
- <production count="1" id="23" />
- </item>
- <item>
- <!-- Adena -->
- <ingredient count="12200" id="57" />
- <!-- Wooden Breastplate -->
- <ingredient count="1" id="23" />
- <!-- Bone Breastplate -->
- <production count="1" id="24" />
- </item>
- <item>
- <!-- Adena -->
- <ingredient count="16500" id="57" />
- <!-- Bone Breastplate -->
- <ingredient count="1" id="24" />
- <!-- Piece Bone Breastplate -->
- <production count="1" id="25" />
- </item>
- <item>
- <!-- Adena -->
- <ingredient count="16500" id="57" />
- <!-- Bone Breastplate -->
- <ingredient count="1" id="24" />
- <!-- Hard Leather Shirt -->
- <production count="1" id="27" />
- </item>
- <item>
- <!-- Adena -->
- <ingredient count="16500" id="57" />
- <!-- Piece Bone Breastplate -->
- <ingredient count="1" id="25" />
- <!-- Bronze Breastplate -->
- <production count="1" id="26" />
- </item>
- </list>
复制代码
002.xml复制代码
003.xml- <?xml version="1.0" encoding="UTF-8"?>
- <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/multisell.xsd">
- <npcs>
- <npc>30001</npc> <!-- Lector (Weapon Merchant) -->
- <npc>30002</npc> <!-- Jackson (Armor Merchant) -->
- <npc>30003</npc> <!-- Silvia (Accessory Merchant) -->
- <npc>30135</npc> <!-- Iria (Weapon Merchant) -->
- <npc>30136</npc> <!-- Payne (Armor Merchant) -->
- <npc>30138</npc> <!-- Minaless (Accessory Merchant) -->
- <npc>30147</npc> <!-- Unoren (Weapon Merchant) -->
- <npc>30148</npc> <!-- Ariel (Armor Merchant) -->
- <npc>30149</npc> <!-- Creamees (Accessory Merchant) -->
- <npc>30207</npc> <!-- Arodin (Weapon Merchant) -->
- <npc>30208</npc> <!-- Damion (Armor Merchant) -->
- <npc>30253</npc> <!-- Simplon (Armor Merchant) -->
- <npc>30294</npc> <!-- Varan (Accessory Merchant) -->
- <npc>30314</npc> <!-- Nestle (Accessory Merchant) -->
- <npc>30321</npc> <!-- Sydnia (Weapon Merchant) -->
- <npc>30516</npc> <!-- Reep (Weapon Merchant) -->
- <npc>30517</npc> <!-- Shari (Armor Merchant) -->
- <npc>30518</npc> <!-- Garita (Accessory Merchant) -->
- <npc>30519</npc> <!-- Mion (Grocer) -->
- <npc>30558</npc> <!-- Jakal (Weapon Merchant) -->
- <npc>30559</npc> <!-- Kunai (Armor Merchant) -->
- <npc>30560</npc> <!-- Uska (Accessory Merchant) -->
- <npc>32164</npc> <!-- Erinu (Weapon Merchant) -->
- <npc>32165</npc> <!-- Zakone (Armor Merchant) -->
- <npc>32166</npc> <!-- Trevor (Accessory Merchant) -->
- </npcs>
- <item>
- <!-- Club -->
- <ingredient count="1" id="4" />
- <!-- Adena -->
- <ingredient count="8032" id="57" />
- <!-- Heavy Chisel -->
- <production count="1" id="152" />
- </item>
- <item>
- <!-- Heavy Chisel -->
- <ingredient count="1" id="152" />
- <!-- Adena -->
- <ingredient count="4873" id="57" />
- <!-- Mace -->
- <production count="1" id="5" />
- </item>
- <item>
- <!-- Mace -->
- <ingredient count="1" id="5" />
- <!-- Adena -->
- <ingredient count="6600" id="57" />
- <!-- Sigil -->
- <production count="1" id="153" />
- </item>
- <item>
- <!-- Sigil -->
- <ingredient count="1" id="153" />
- <!-- Adena -->
- <ingredient count="39160" id="57" />
- <!-- Dwarven Mace -->
- <production count="1" id="154" />
- </item>
复制代码
大家复制出来随便保存一下。
作者: czjt1234 时间: 2024-2-29 14:55
- @echo off
- (for /f "delims=" %%i in ('dir /b *.xml') do (
- find /i "http://www.w3.org" "%%i" >nul && echo %%i
- )) >sour.txt
- pause
复制代码
作者: qixiaobin0715 时间: 2024-2-29 15:04
- @echo off
- findstr /im /c:"http://www.w3.org" *.xml
- pause
复制代码
作者: zhengwei007 时间: 2024-2-29 17:17
本帖最后由 zhengwei007 于 2024-2-29 18:14 编辑
czjt1234 发表于 2024-2-29 14:55
不好意思没说清,当前目录下的所有目录需要遍历一遍,保存结果时也要把路径带上。
作者: zhengwei007 时间: 2024-2-29 17:17
本帖最后由 zhengwei007 于 2024-2-29 18:14 编辑
qixiaobin0715 发表于 2024-2-29 15:04
不好意思没说清,当前目录下的所有目录需要遍历一遍,保存结果时也要把路径带上。
作者: czjt1234 时间: 2024-2-29 18:26
- @echo off
- (for /f "delims=" %%i in ('dir /s /b *.xml') do (
- find /i "http://www.w3.org" "%%i" >nul && echo %%i
- )) >sour.txt
- pause
复制代码
作者: wanghan519 时间: 2024-2-29 18:33
要不就用ripgrep,4000个文本,5g,1秒
作者: zhengwei007 时间: 2024-2-29 23:19
czjt1234 发表于 2024-2-29 18:26
谢谢,就是这样的,完全符合。太棒了!
作者: qixiaobin0715 时间: 2024-3-1 10:07
本帖最后由 qixiaobin0715 于 2024-3-1 10:50 编辑
3楼代码加个“/s”参数,可以得到相对路径:- findstr /ims /c:"http://www.w3.org" *.xml
复制代码
获得全路径:- @echo off
- for /f "delims=" %%i in ('findstr /ims /c:"http://www.w3.org" *.xml') do echo,%~dp0%%i
- pause
复制代码
作者: WHY 时间: 2024-3-1 13:17
回复 9# qixiaobin0715
不加 for 应该可以吧?
findstr /i /m /s /c:"abcd" "%~dp0*.txt"
作者: WHY 时间: 2024-3-1 13:21
本帖最后由 WHY 于 2024-3-1 20:42 编辑
- PowerShell "(dir *.txt -Recurse | Select-String 'abcd' -SimpleMatch -List).Path"
复制代码
作者: qixiaobin0715 时间: 2024-3-1 14:05
回复 10# WHY
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |