![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 17:10 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]文本内容提取 |
| 可打印版本 2,895 / 43 |
| 第31楼 netbenton | 发表于 2009-04-13 00:53 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
Originally posted by lxh623 at 2009-4-12 10:48: 这是处理你贴出的数据的结果,你指一下看哪里还有问问题
|
|
| 第32楼 freeants001 | 发表于 2009-04-13 00:57 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
复制保存为.js文件,直接把要处理的文件拖到该JS文件的图标上
|
|
| 第33楼 lxh623 | 发表于 2009-04-13 02:51 |
| 初级用户 发帖 30 积分 34 | |
Originally posted by netbenton at 2009-4-13 00:53: 同一BASIC PATENT内可能有多个“PATENT (Number; Kind; Date): United States of Am ”,但只有第一个前面有“UNITED STATES OF AMERICA (US)”。 据说,批处理不支持正则表达式,不知道如何解决? 贴出来的部分,因为考虑版面,节略太多。 再次谢谢您! |
|
| 第34楼 lxh623 | 发表于 2009-04-13 02:56 |
| 初级用户 发帖 30 积分 34 | |
Originally posted by freeants001 at 2009-4-13 00:57: |
|
| 第35楼 freeants001 | 发表于 2009-04-13 03:10 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
下面这行也要吗??
------------------------------------------------- BASIC-PATENT: |
|
| 第36楼 freeants001 | 发表于 2009-04-13 03:22 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
一楼示例处理后是不是要这种结果
PATENT (Number; Kind; Date): Taiwan (TW) 464,511; B; November 21, 2001 //这行不要 |
|
| 第37楼 lxh623 | 发表于 2009-04-13 03:22 |
| 初级用户 发帖 30 积分 34 | |
Originally posted by freeants001 at 2009-4-13 03:10: 是的! 台湾那行不要。其余就是想要的,空行可以删除。 js不能对整个文件夹操作吧? 谢谢! [ Last edited by lxh623 on 2009-4-13 at 03:36 ] |
|
| 第38楼 freeants001 | 发表于 2009-04-13 03:24 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
Originally posted by lxh623 at 2009-4-13 03:22: 可以处理子文件夹,包括子文件夹 |
|
| 第39楼 freeants001 | 发表于 2009-04-13 03:29 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
发现附件中下面这行前有一个空格,但你贴出的示例中没有
BASIC-PATENT: |
|
| 第40楼 lxh623 | 发表于 2009-04-13 03:36 |
| 初级用户 发帖 30 积分 34 | |
Originally posted by freeants001 at 2009-4-13 03:29: 不好意思,没有仔细检查。 |
|
| 第41楼 freeants001 | 发表于 2009-04-13 03:49 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
下面代码应该符合要求了吧?
要批量处理请文件夹,自己结合for命令把 [ Last edited by freeants001 on 2009-4-13 at 03:51 ] |
|
| 第42楼 lxh623 | 发表于 2009-04-13 04:02 |
| 初级用户 发帖 30 积分 34 | |
Originally posted by freeants001 at 2009-4-13 03:49: |
|
| 第43楼 netbenton | 发表于 2009-04-13 07:25 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
纯批的也可以了 @echo off&setlocal enabledelayedexpansion
set ho=UNITED STATES OF AMERICA (US) set en=PATENT (Number; Kind; Date): set bg=United States of America (US) set li2=BASIC-PATENT: set li10=European Patent Office (EP) set li11=Russian Federation (RU) set li12=World Intellectual Property Organisation (WO) set li13=Canada (CA) set li14=People's Republic of China (CN) set li15=Japan (JP) set li16=Republic of Korea (KR) set li17=United Kingdom (GB) set li18=Germany (DE) set li19=France (FR) set li20=United States of America (US) ::国家判断只对比了前面10个字节,应该可以了的。 for /f %%a in ('dir /b *.txt') do ( set "ver=" (for /f "delims=" %%d in (%%a) do (set "str=%%d"&call :sub))>%%~na_dest.txt start %%~na_dest.txt ) echo 处理完成 pause goto :eof :sub if defined ver (echo.!str! if not "!str:%en%=!"=="!str!" set ver= goto :eof) if not "!str:%li2%=!"=="!str!" echo !str!&goto :eof if "!str:%en%=!"=="!str!" ( if "!str!"=="!ho!" (set vho=y&goto :eof) else (set vho=) goto :eof ) else ( set "coc=!str:*%en% =!" if defined vho ( if "!bg:~0,10!"=="!coc:~0,10!" (set vho=&set ver=y&echo !ho!&echo.!str!&goto :eof) ) for /l %%a in (10,1,20) do (if "!li%%a:~0,10!"=="!coc:~0,10!" echo !str!&goto :eof) ) goto :eof |
|
| 第44楼 lxh623 | 发表于 2009-04-13 10:39 |
| 初级用户 发帖 30 积分 34 | |
|
再次谢谢两位!
这么复杂的数据经过批处理或JS脚本,得到可以进一步处理或导入文献软件的数据。我心里充满对二位的感激!两个办法都达到接近的结果,非常好!! |
|
| 上一页 1 2 3 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |