中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 05:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:分析TXT文件的批处理 查看 1,040 回复 10
楼 主 求助:分析TXT文件的批处理 发表于 2007-07-04 09:23 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
19年会员
UID 70077
性别 男
来自 重庆
状态 离线
请看,附件中的两个TXT文件,我要分析的就是这两个文件

第一个文件 由于包括了“租赁” 这个关键词,所以这个文件予以保留
第二个文件 由于不包括“租赁” 这个关键词,所以这个文件予以删除

我写了很久但是都没有分析出来,不知道怎么回事???:)

[ Last edited by bjsh on 2007-7-31 at 10:09 AM ]
附件
1.txt (4.77 KiB, 下载次数: 16)
2.txt (4.01 KiB, 下载次数: 11)
2 发表于 2007-07-04 09:50 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
@echo off
for /f %%i in ('dir/b *.txt') do (
findstr /c:"租赁" %%i>nul
if errorlevel 1 del %%i
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
gene771771 +2 2007-07-04 09:58
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2007-07-04 09:58 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
19年会员
UID 70077
性别 男
来自 重庆
状态 离线
谢谢!!!
4 发表于 2007-07-04 11:04 ·  中国 陕西 西安 电信
新手上路
积分 18
发帖 11
注册 2006-06-07 11:24
20年会员
UID 56679
性别 男
状态 离线
2楼的强,学习
5 发表于 2007-07-04 11:10 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
19年会员
UID 70077
性别 男
来自 重庆
状态 离线
根据你的代码,我写了如下代码

@echo off
for /l %%a in (226,1,925) do (
cd /d H:\下载\筛选\xw%%a\Paper\pdf
copy H:\下载\筛选\xw%%a\Paper\pdf\ml.htm ml.txt
for /f %%i in ('dir/b *.txt') do (
findstr /c:"证券" %%i>nul
if errorlevel 1 goto 2
)
goto 1
:2
for /f %%i in ('dir/b *.txt') do (
findstr /c:"银行" %%i>nul
if errorlevel 1 goto 3
)
goto 1
:3
for /f %%i in ('dir/b *.txt') do (
findstr /c:"股市" %%i>nul
if errorlevel 1 goto 4
)
goto 1
:4
for /f %%i in ('dir/b *.txt') do (
findstr /c:"信托" %%i>nul
if errorlevel 1 goto 5
)
goto 1
:5
for /f %%i in ('dir/b *.txt') do (
findstr /c:"保险" %%i>nul
if errorlevel 1 goto 6
)
goto 1
:6
for /f %%i in ('dir/b *.txt') do (
findstr /c:"经济" %%i>nul
if errorlevel 1 goto 7
)
goto 1
:7
for /f %%i in ('dir/b *.txt') do (
findstr /c:"利率" %%i>nul
if errorlevel 1 goto 8
)
goto 1
:8
for /f %%i in ('dir/b *.txt') do (
findstr /c:"汇率" %%i>nul
if errorlevel 1 goto 9
)
goto 1
:9
for /f %%i in ('dir/b *.txt') do (
findstr /c:"贷款" %%i>nul
if errorlevel 1 goto 10
)
goto 1
:10
for /f %%i in ('dir/b *.txt') do (
findstr /c:"公司" %%i>nul
if errorlevel 1 goto 11
)
goto 1
:11
for /f %%i in ('dir/b *.txt') do (
findstr /c:"商业" %%i>nul
if errorlevel 1 goto 12
)
goto 1
:12
for /f %%i in ('dir/b *.txt') do (
findstr /c:"服务业" %%i>nul
if errorlevel 1 goto 13
)
goto 1
:13
for /f %%i in ('dir/b *.txt') do (
findstr /c:"资产" %%i>nul
if errorlevel 1 goto 14
)
goto 1
:14
for /f %%i in ('dir/b *.txt') do (
findstr /c:"企业" %%i>nul
if errorlevel 1 goto 15
)
goto 1
:15
for /f %%i in ('dir/b *.txt') do (
findstr /c:"货币" %%i>nul
if errorlevel 1 goto 16
)
goto 1
:16
for /f %%i in ('dir/b *.txt') do (
findstr /c:"财政" %%i>nul
if errorlevel 1 goto 17
)
goto 1
:17
for /f %%i in ('dir/b *.txt') do (
findstr /c:"债券" %%i>nul
if errorlevel 1 goto 18
)
goto 1
:18
for /f %%i in ('dir/b *.txt') do (
findstr /c:"融资" %%i>nul
if errorlevel 1 goto 19
)
goto 1
:19
for /f %%i in ('dir/b *.txt') do (
findstr /c:"股票" %%i>nul
if errorlevel 1 goto 20
)
goto 1
:20
for /f %%i in ('dir/b *.txt') do (
findstr /c:"金融" %%i>nul
if errorlevel 1 goto 21
)
goto 1
:21
for /f %%i in ('dir/b *.txt') do (
findstr /c:"储蓄" %%i>nul
if errorlevel 1 goto 22
)
goto 1
:22
for /f %%i in ('dir/b *.txt') do (
findstr /c:"投资" %%i>nul
if errorlevel 1 goto 23
)
goto 1
:23
for /f %%i in ('dir/b *.txt') do (
findstr /c:"管理" %%i>nul
if errorlevel 1 goto 24
)
goto 1
:24
for /f %%i in ('dir/b *.txt') do (
findstr /c:"基金" %%i>nul
if errorlevel 1 goto 25
)
goto 1
:25
for /f %%i in ('dir/b *.txt') do (
findstr /c:"租赁" %%i>nul
if errorlevel 1 goto 26
)
goto 1
:26
rd /s /q H:\下载\筛选\xw%%a
del /q /s /a H:\下载\筛选\xw%%a.zip
echo 已删除!
goto again
:1
echo 已保存!
)

但是,运行以后,只能正常执行一次,就自动退出了,我不知道问题出在哪里,请指教。。。
如果不要最开始的FOR循环(226-925)程序可以正常运行,加上FOR循环以后,只能执行226这一个文件。。。
谢谢
6 发表于 2007-07-04 11:22 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
貌似 for 命令内部的标签跳转无效。

你要达到什么目的呢?
7 发表于 2007-07-04 11:31 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
19年会员
UID 70077
性别 男
来自 重庆
状态 离线
在 H:\下载\筛选\ 里边有很多文件夹,每个都是用xw+数字来命名的,
现在以266为例
首先需要进入H:\下载\筛选\xw266\Paper\pdf
然后将文件 ml.htm 变成 ml.txt
然后继续分析文件是不是包含关键字,不包含删除,包含保存。
现在的问题是:如何自动循环进入文件夹(分析和处理文件的部分我测试了,虽然看起来很复杂,但是是没有问题的)


for /l %%a in (226,1,925) do ( ... )

cd /d H:\下载\筛选\xw%%a\Paper\pdf

copy H:\下载\筛选\xw%%a\Paper\pdf\ml.htm ml.txt

[ Last edited by gene771771 on 2007-7-4 at 11:32 AM ]
8 发表于 2007-07-04 11:51 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
for /L %%a in (226,1,925) do (
ren "H:\下载\筛选\xw%%a\Paper\pdf\ml.htm" ml.txt
findstr "urword" "H:\下载\筛选\xw%%a\Paper\pdf\ml.txt" >nul 2>nul || del "H:\下载\筛选\xw%%a\Paper\pdf\ml.txt"
)
9 发表于 2007-07-04 11:52 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
我没有试验环境,不知具体情况,你的代码长度实在让我害怕^_^
不过是否可以变相思考,例如:
@echo off
for /l %%a in (226,1,925) do cd /d H:\下载\筛选\xw%%a\Paper\pdf&&copy ml.htm ml.txt&&call :123 ml.txt

:123
for /f %%i in (%1) do (
findstr /c:"**" %%i>nul....
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
gene771771 +2 2007-07-04 21:06
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
10 发表于 2007-07-04 11:58 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
19年会员
UID 70077
性别 男
来自 重庆
状态 离线
太感谢了,我测试一下。。。
11 发表于 2007-07-04 12:42 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
grep 一行代码 筛选出 不含关键字的文件名;
for 来删除....
论坛跳转: