VBS和bat批处理逐行读取文件实例,vbsbat批处理逐行


首先是批处理的,很简单,每隔两秒钟读取一行。

复制代码 代码如下:
@echo off
for /f "tokens=*" %%i in (lrbf.ini) do (echo %%i & ping -n 2 127.1>nul)
pause

更直观的:

复制代码 代码如下:
FOR /F "delims=" %i IN (file.txt) DO echo %i

当然如果你想做更多其他的事 do 后面是你发挥的地方

VBS的两个版本

第一种方式,逐行读取,依次显示:

复制代码 代码如下:
Const ForReading = 1
dim   objFSO,objFile,strline  
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("lrbf.ini", ForReading)
do   until   objFile.atendofstream  
        strline=objFile.readline  
        wscript.echo   strline   '这里是显示一行内容而已,可以换成别的内容
loop  
objFile.close  
set   fso=nothing

第二种方式,全部读取,依次显示:
复制代码 代码如下:
Const ForReading = 1
dim   objFSO,objFile,strline  
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("lrbf.ini", ForReading)
str=objFile.readall  
objFile.close  
if   str=""   then  
        wscript.echo   "Nothing"  
        wscript.quit  
end   if  
strarry=split(str,vbcrlf)  
for   each   linestr   in   strarry  
          wscript.echo   linestr   '这里是用echo显示每一行的内容,可以换成别的内容
next  
set   fso=nothing 

VBS读取文本最后一行:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("lrbf.ini", ForReading)
Do Until objFile.AtEndOfStream
strNextLine = objFile.ReadLine
If Len(strNextLine) > 0 Then
strLine = strNextLine
End If
Loop
objFile.Close
Wscript.Echo strLine


:用vbs脚本生成一个批处理(bat)文件并执行bat文件的一个例子

set fso=createobject("scripting.filesystemobject")
set ws=CreateObject("wscript.shell")
set fw=fso.createtextfile("1.bat",2)
fw.writeline("@echo off")
fw.writeline("echo 就是这个效果")
fw.writeline("pause")
fw.close
ws.run "1.bat"
 

vbs中执行bat批处理,只用1个vbs文件 要可以像调用1个bat文件那样,但只用1个vbs文件不调用另1个bat文件

set fso=createobject("scripting.filesystemobject")
set ws=CreateObject("wscript.shell")
set fw=fso.createtextfile("1.bat",2)
fw.writeline("@echo off")
fw.writeline("echo 就是这个效果")
fw.writeline("pause")
fw.close
ws.run "1.bat"

 

评论关闭