怎么用bat 或者 vbs 修改文件内容 如何用批处理(VBS也可)查找+修改文本文件的内容

作者&投稿:堂茗 (若有异议请与网页底部的电邮联系)
用的 bat ,保存为 bat 文件运行。只改动所有 所在文件夹内的 txt文件。

@echo offsetlocal enabledelayedexpansionfor /f "tokens=*" %%i in ('dir /a-d /b *.txt') do (set m=0for /f "delims=" %%a in ('find /c /v "" ^<"%%i"') do set n=%%aecho 0>tempf>nulfor /f "delims=" %%j in (%%i) do (set /a m+=1set str=%%jif !m!==1 set str=!str:3=9!if !m! gtr 1 (if !m! lss !n! (set str=!str:3=!set str=!str:4=!))if !m!==!n! set str=!str:4=8!if not "!str!"=="" echo !str!>>tempf)move /y tempf %%i)

怎么用bat命令修改文件名~

使用copy命令即可在D:\1下新建一个文本文档,里面输入"start",点“另存为”文件名“cmd.bat”。打开“cmd.bat”,出现一个黑框框,在里面输入:copy 1.txt 1.jpg 然后回车。记得,注意空格,copy空格1.txt空格1.jpg,就可以了。试下,满意就选我。还可以批量重命名,命令如下,把所有.txt重命名为.jpg,命令:copy *.txt *.jpg。(注意空格)其实也可以使用rename命令,但是rename命令会使原来的文件没有了,copy会保留原来的文件,可以对比使用下。rename用法:rename 1.txt 1jpg (照样要空格)

批处理很难实现,除非借助外部命令, 所以使用VBS
不懂你的文件是什么编码的,我就当ANSI处理了
文件放在和你要处理的文件同一目录。 会生成一个新文件, 这样比较安全, 不过你可以把 new_ 去掉, 就会复盖原文件。

这样使用

cscript do.vbs

双击也是可以啦。

以下VBS代码存为 do.vbs

function ReadAsciiFile(ByVal strFileName)
ReadAsciiFile = ReadFile(strFileName, 0)
end function

function ReadFile(ByVal strFileName, ByVal numCharSet)
dim file
if objFS.FileExists(strFileName) then
set file = objFS.OpenTextFile(strFileName, 1, false, numCharSet)
dim sText
sText = file.ReadAll
ReadFile = sText
file.close
end if
set file = nothing
end function
sub String2File(ByVal strFileName, ByVal strS)
dim fileWriter
set fileWriter = objFS.CreateTextFile(strFileName, True, false)
fileWriter.Write strS
fileWriter.close
set fileWriter = nothing
end sub

dim objFS
set objFS = CreateObject("Scripting.FileSystemObject")
dim fileName
fileName = "22.txt"

dim sSub
sSub = ReadAsciiFile(fileName)
sSub = replace(sSub, "dhd", "mmmm")
String2File "new_" & fileName,sSub
wsh.echo "done"