标题: [文本处理] 批处理如何把文本a的顺序按照文本b排列好,谢谢 [打印本页]
作者: yyz219 时间: 2022-2-24 10:31 标题: 批处理如何把文本a的顺序按照文本b排列好,谢谢
本帖最后由 yyz219 于 2022-2-24 11:32 编辑
批处理如何把文本a的顺序按照文本b排列好,谢谢
【a.txt是bat生成的(文字准确无误,但顺序要调整),b.txt是“妙手OCR ”抓取的(顺序准确无误,但是文字有可能有误)。由此,用加引号和.lnk不是好方法】
a.txt(需要重新调整顺序的文本)- "常用.lnk"
- "菜单排序.lnk"
- "特殊符号.lnk"
- "整理碎片.lnk"
- "清TEMP+.lnk"
- "Ctrl.Shif.G.lnk"
- "替换 还原.lnk"
- "更新数据.lnk"
- "清 ie 临时.lnk"
- "清理TEMP.lnk"
- "Ctrl.Shif.A.lnk"
- "恢复后要.lnk"
- "抓文字好.lnk"
- "启动抓图+.lnk"
- "刷新+.vbs.lnk"
- "图标缓存.lnk"
- "搜索文件.lnk"
- "个人文件.lnk"
复制代码
b.txt(希望a.txt按照这里的顺序排列)- 替换还原
- 整理碎片
- 菜单排序
- 个人文件
- 更新数据
- 搜索文件
- 刷新+.vbs
- 图标缓存
- 清TEMP+
- 清理TEMP
- 清ie临时
- 启动抓图+
- Ctrl.Shif.G
- 抓文字好
- 恢复后要
- Ctrl.Shif.A
- 特殊符号
- 常用
复制代码
作者: Echo11 时间: 2022-2-24 11:54
如何OCR不能准确识别的话,还是不太好弄的。不确定性可不止你给的例子这么多。
作者: yyz219 时间: 2022-2-24 12:01
回复 2# Echo11
就当作OCR是准确的,弄一下试试看。
作者: Echo11 时间: 2022-2-24 13:11
本帖最后由 Echo11 于 2022-2-24 13:21 编辑
为方便反复调试,我把结果输出到了c.txt- (
- for /F "usebackq tokens=1 delims=" %%b in ("b.txt") do for /F "usebackq tokens=1 delims=" %%a in ("a.txt") do ECHO.%%a|find /i "%%b" >nul 2>nul && ECHO.%%a
- )>"c.txt"
- ECHO.结束.
- pause>nul
- EXIT
复制代码
1、显然,这种方法是会有问题的。
2、你的a.txt每行结尾好像有个空格
作者: qixiaobin0715 时间: 2022-2-24 13:17
本帖最后由 qixiaobin0715 于 2022-2-24 13:19 编辑
这样空格就不会有影响:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set str=%%~na
- set str=!str: =!
- set "_!str!=%%a"
- )
- (for /f "delims=" %%i in (b.txt) do echo,!_%%i!)>a.txt
- pause
复制代码
作者: Echo11 时间: 2022-2-24 13:24
其实空格我想说的是:
文件名中的空格去掉还是会有多匹配的可能,比如: "a b.lnk"和"a b.lnk"显然是2个文件
作者: yyz219 时间: 2022-2-24 13:27
回复 4# Echo11
我试一试先 谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |