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 展开
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么,高手啊,我试下哈
虽然我不太明白你想干什么,不过还是按照你的意愿来了:
将1.txt中字符串大小大于30的(汉字为2)行转存到转好.txt
将其中带有mmmm的行进行处理:删除mmmm以及前面的13个字符
将结果输出到另一个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
============================(代码结束 )===============================
你的这个行哦,谢了
那么请采纳吧,谢谢!