无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2802|回复: 1
打印 上一主题 下一主题

给DXSX的难题帖子。

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-13 15:46:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
老帖子:


难题是这样的:在一个目录下会随时被抛进来一些TXT文件, 文件名不定,比如DDKJ.TXT 还有RRKV3.TXT. 文件内容如下:

/TEST
/TEST 2
/HELLO,WORLD
=TEXT
/WW
/XX
/YY

需要有个批处理问题对每个抛进来的文件进行全文检查。如果,发现文本里面发现有/XX字符串的,就需要把=TEXT行以下所有的内容输出到一个新文件(新文件名可以是旧文件名+N,比如原来是yyy.txt, 那新文件名可以是yyyN.txt),同时再加一个新的文件头,比如:

/NEW HEAD
/NEW, HEAD2
=TEXT
/WW
/XX
/YY

然后新的文件要求COPY到一个目录,原来的文件COPY到另外个目录。





你的代码我运行过了,很不错,已经解决了大部分问题。但是还有2个问题,可能我没说清楚。

按照你的写法,就是先找到一个STRING,然后把这个STRING 下面的内容输出到新文件,然后COPY和MOVE.

而我的问题更加复杂一点,就是先要找到另外个STRING,也就是说要先找到STRING1,确认这个STRING1有了,那才对文件进行操作。

所谓的操作就是你后面写的,把STRING2以下的所有文本输出到新文件,新文件保存到某目录下,旧文件MOVE到另外目录。


在这里还有个要求,就是新文件是希望有个固定开头的。比如,每个新文件的开头3行都是“1111”, “2222”,“3333”, 接下来才是从老文件那里传导过来的内容。
2#
发表于 2010-12-13 15:56:47 | 只看该作者
屡清思路:
条件: 有 x y z 三个文件夹,其中 x 文件夹中有很多 txt 文件
目的:把 x 中包含 "/xx" 的文件找出来,将该文件中 =TEXT 及其以下内容传递给 z 文件夹下的 (原名+n) 为名字,以 [topnew] 为开头的新文件中,同时把 x 中的老文件移动到 y 中。

这个应该可以了

@echo off &SETLOCAL ENABLEDELAYEDEXPANSION
set old=x
set new0=y
set new1=z
SET STR0=/XX
SET STR1==TEXT
set top=[topnew]

for /f "delims=" %%c in ('dir /b /s /a-d "%old%\*.txt"') do (
find /i"!STR0!" "%%c" >nul 2>nul
if not errorlevel 1  (
  echo %%c
  echo !top! >"!new1!\%%~ncN%%~xc"
  SET N=0
  for /f "delims=" %%d in (%%c)  do (
   if *%%d*==*%STR1%* SET N=1
   IF !N!*==1* ECHO %%d >>"!new1!\%%~ncN%%~xc"
  )
  move /y "%%c" "%new0%"
)
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 02:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表