BAT批量处理bat所在文件夹下的TXT文件

=======这个BAT怎么批量处理bat所在文件夹下的TXT文件啊,最好不生成新的文件=============@echooffifexist"转好.txt"del/a... =======这个BAT怎么批量处理bat所在文件夹下的TXT文件啊,最好不生成新的文件=============
@echo off
if exist "转好.txt" del /a /f /q "转好.txt"
for /f "delims=" %%a in (1.txt) do (
echo %%a>.wkdxz
for %%b in (.wkdxz) do (if %%~zb gtr 30 echo %%a>>"转好.txt")
)
del /a /f /q .wkdxz
del /q 修改后.txt
for /f "delims=" %%i in ('type 转好.txt')do (
call set "a=%%i"
call set "b=%%a:*mmmm=%%"
call call set "c=%%%%a:mmmm%%b%%=%%%%"
call set "d=%%c:~,-13%%"
call :1
)
del /a /f /q 转好.txt
start 修改后.txt&exit
:1
if "%a:mmmm=%"=="%a%" (call :2) else (call :3)
goto :eof
:2
echo %a%>>修改后.txt
goto :eof
:3
echo %d%%b%>>修改后.txt
goto :eof
==============以上是代码,以下是我处理文件的样本=============
什么事吗?”
平常以严
肃出名的社
长一改以往的形象,微笑
的对眼前的女孩儿雪敏说:“雪敏啊,你当
练习生也有一段
时间了,我想把你以组合的形式推出。”
“社长,真的吗?”雪敏惊喜不已。虽然雪敏知道总有一天会像爸爸妈妈那样站上舞台的,但是mmmm没想到回来的那么快,毕竟她是这一届实习生
中训练最短的一位。
社长把另外四位女生的资料递给雪敏,说:“雪敏啊,我们打算重点打造一mmmm个女子组合
Figure Girls,由你来担任队长。并且于2009年8月同其他成员通过单曲《爱》出mmmm
道。现在你去你们专属的练习室找她们吧,她们在等着你呢。”
雪敏带

着兴奋
离开了社长办公室,走到了Figure Girl
s的专属练习室。一路上,她都不敢相信这是真的。回想起几个月前,她还是初来乍到的练习生,而现mmmm在,她已经是JYP重
点打造的Figure Girls 的队长了。雪敏推开mmmm
展开
 我来答
麦兜Terran
2013-08-01 · TA获得超过2571个赞
知道小有建树答主
回答量:1786
采纳率:0%
帮助的人:1163万
展开全部
on error resume next
dim file, find, replacestr,read,findstr,count,countstr,filepath,i,j,path,cd,t,tnum,msg,finename,f,tt,ff,fso
msgstr="直接按确定程序将自动指定目录为当前文件夹"
set fso=createobject("scripting.filesystemobject")
set cd=createobject("shell.application")
if cd is nothing then            '如果系统自带这个对象则直接调用吧
 set cd=nothing
 file=inputstr("请输入要处理的目标目录",msgstr)
 if file=false then quit
 if file=vbnullstring or file=msgstr then file="."
 else
 file=cd.application.browseforfolder(0,"请选择一个你要处理的目标目录",0).self.path   '创建对话框
 if file=vbnullstring then quit
end if
replacestr=inputstr("请输入要替换的字符串","mmmm")        '要删除的字符串
if replacestr=false then quit
msg=msgbox("需要另存为新的文件吗?",68,wscript.scriptname)       '[17行]          '[18行]
t=timer
if replacestr=vbnullstring then quit
for each i in fso.getfolder(file).files          '遍历文件夹
 if fso.getextensionname(i)="txt" then         '只修改txt后缀名的文件
  filepath=left(i,instrrev(i,"\"))        '分配路径
  file=mid(i,instrrev(i,"\")+1)         '分配文件
  if msg=6 then filename=filepath&"New_"&file else filename=filepath&file    '[24行],分配文件名
  'filename=filepath&file          '[25]行
  read=fso.opentextfile(i).readall        '读取文件
  countstr=split(read,replacestr)         '分配文本
  count=ubound(countstr)          '没有找到字符串,如果有则继续执行
  if count=0 then ff=ff+1:f=f&i&" -- 没有找到与 "&replacestr&" 相符的字符串"&vbcrlf
  for j=0 to ubound(countstr)         '循环查找
   find=instr(find+1,read,replacestr)       '找到匹配位置
   if find>0 then          '已找到并舍弃mmmm+前13个字
    findstr=findstr&left(countstr(j),len(countstr(j))-len(right(countstr(j),13))) '13就是前13个字符
    else
    findstr=findstr&countstr(j)       '不需要舍弃的随后补上
   end if
  next
  if ff=0 and instr(i,"处理记录_")=0 then fso.createtextfile(filename).write findstr
  findstr=empty
 end if
next
tnum=formatnumber(timer-t,2)
tt=replace(date,"/","-")
if count=0 then fso.createtextfile(filepath&"处理记录_"&ff&"个_"&tt&".txt").write f    '[44]行,没有找到的都会记录到这个文件里
if left(tnum,instrrev(tnum,"."))="." then tnum=0&tnum
msgbox "已处理完成,大约耗时 -- "&tnum&" 秒.",64,wscript.scriptname      '[46]行,提示完成时间
quit
sub quit
set cd=nothing
set fso=nothing
wscript.quit
end sub
public function inputstr(str1,str2)
inputstr=inputbox(str1,wscript.scriptname,str2)
end function
'觉得文件名麻烦而且不想新建新的文件就将17、24行整行删除并把25行第一个字"'"去掉即可
'觉得提示和处理记录多余同样可以将44、46行整行删除
'在每行代码前面加"'"也可以
追问
亲,这是VBS么,高手啊,我试下哈
甜美还深邃丶榜眼8
2013-08-01 · TA获得超过1329个赞
知道小有建树答主
回答量:654
采纳率:100%
帮助的人:626万
展开全部

虽然我不太明白你想干什么,不过还是按照你的意愿来了:

  1. 将1.txt中字符串大小大于30的(汉字为2)行转存到转好.txt

  2. 将其中带有mmmm的行进行处理:删除mmmm以及前面的13个字符

  3. 将结果输出到另一个txt里面(尽量不生成新文件)

是这样对吧?你想处理bat所在文件夹下的所有TXT文件,包括隐藏属性、系统属性等

你的一切要求都满足了,不会生成新的文件了

 

最好不要直接复制,因为可能有格式错误导致运行错误,建议下载附件

============================(代码开始)===============================

@echo off
if exist "转好.txt" del /a /f /q "转好.txt"
set e=0
for /f "delims=" %%a in ('dir /a-d/b "*.txt"')do (
   set/a e+=1
   for /f "usebackq delims=" %%b in ("%%a") do (
      echo %%b>.wkdxz
      for %%c in (.wkdxz) do (if %%~zc gtr 30 echo %%b>>转好.txt)
   )
   for /f "delims=" %%i in ('type 转好.txt')do (
         call set "f=%%i"
         call set "g=%%f:*mmmm=%%"
         call call set "h=%%%%f:mmmm%%g%%=%%%%"
         call set "d=%%h:~,-13%%"
         call :1
   )
   del /a /f /q 转好.txt
   del /q "%%a"
   call ren %%e%%new.lll "%%a"
)
del /a /f /q .wkdxz
exit
:1
if "%f:mmmm=%"=="%f%" (call :2) else (call :3)
goto :eof
:2
echo %f%>>%e%new.lll
goto :eof
:3
echo %d%%g%>>%e%new.lll
goto :eof

============================(代码结束 )===============================

追问
你的这个行哦,谢了
追答
那么请采纳吧,谢谢!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式