Board logo

标题: [文本处理] [已解决]求助批处理把文件夹内文本合并提取重复出现的数值 [打印本页]

作者: Bonnie    时间: 2023-7-12 17:42     标题: [已解决]求助批处理把文件夹内文本合并提取重复出现的数值

本帖最后由 Bonnie 于 2023-7-12 23:15 编辑

各位大神:
      请教一下。桌面指定文件夹内(新建文件夹)有多个文本文档。
示例:文档1里面有0001   0003   0004   0005  0006   0007   0008   0009   000A
         文档2里面有0001  000B  000C  0031  0041   0055  0078  0098  00AA
         文档3里面有0001  0023  0033  0044  0056  0088  0099  00AB  00AC
         文档4里面有0001  003E   004E  007F  008D  009A  008F  004A   0000
能否在不合并内容的情况下提取多个文档中重复出现的值。如以上示例中的0001
作者: 77七    时间: 2023-7-12 21:16

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('2^>nul type *.txt') do (
  4. for %%b in (%%a) do (
  5. set /a #%%b + = 1
  6. if !#%%b! equ 2 (
  7. echo %%b
  8. )
  9. )
  10. )
  11. endlocal
  12. pause
复制代码

作者: Bonnie    时间: 2023-7-12 22:24

老铁,能不能再帮忙优化一下下。if !#%%b! equ 2 这个2能不能不固定。判断文件夹下有多少个文本文档就是多少值。。。。。假设文件夹下有5个文档那就是5。。。有9个文档就是9
     
if !#%%b! equ 2   这个应该是判断总的的的重复次数吧。。。。。感谢感谢。。

77七 发表于 2023-7-12 21:16

作者: Batcher    时间: 2023-7-12 22:31

回复 3# Bonnie


    2楼代码不做任何修改的情况下,测试出来的结果跟你顶楼的需求有什么差异吗?
作者: 77七    时间: 2023-7-12 22:37

回复 3# Bonnie


  
  1. @echo off
  2. for %%a in (*.txt) do set /a n + = 1
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('2^>nul type *.txt') do (
  5. for %%b in (%%a) do (
  6. set /a #%%b + = 1
  7. if !#%%b! equ %n% (
  8. echo %%b
  9. )
  10. )
  11. )
  12. endlocal
  13. pause
复制代码

作者: Bonnie    时间: 2023-7-12 23:13

差异是没有。。就是那个重复次数为2会提取出来太多的值了。。如果文档多按重复次数来提取的话。。值就会越来越少。也越来越能得到想要而且正确的数据。


回复  Bonnie


    2楼代码不做任何修改的情况下,测试出来的结果跟你顶楼的需求有什么差异吗?
Batcher 发表于 2023-7-12 22:31

作者: Bonnie    时间: 2023-7-12 23:14

感谢感谢。。。非常完美



回复  Bonnie
77七 发表于 2023-7-12 22:37





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2