示例代码(t.vbs)如下: 复制代码 代码如下: Set fso=Wscript.CreateObject("Scripting.FileSystemObject") flrName="D:Workspacesrc" "dir that you need deal with count=0 "get the count of modified files function Traversal(dir) set flr=fso.getfolder(dir) set fs=flr.files findstr1="[assembly: SecurityTransparent]" "find string that need to be replaced findstr2=replace(findstr1," ","") "becasuse there is space char in findstr,so add this findstr2 replaceStr="[assembly: AllowPartiallyTrustedCallers()]" "destination string in replace
for each f in fs if lcase(f.name)="assemblyinfo.cs" then set findf=fso.opentextfile(f) do while findf.atendofstream=false d=f.datelastmodified "get modified datetime of current file alltext=findf.readall
if(InStr(alltext,findstr1) > 0 ) then s=replace(alltext,findstr1, replaceStr) count=count+1 findf.close() "If no findstr2, delete the following elseif block elseif(InStr(alltext,findstr2) > 0) then s=replace(alltext,findstr2, replaceStr) count=count+1 findf.close()
else findf.close() exit do end if
set r=fso.opentextfile(f, 2, true) r.write s
d2=f.datelastmodified
if d2>=d then exit do loop
end if next
set fs=flr.subfolders for each f in fs Traversal(f.path) next
end function
Traversal(flrName) "msgbox ("Done! "& count & " files were modified successfully.") wscript.echo "Done! "& count & " files were modified successfully." "value popup by "wscript.echo" can be received by .bat easily
Wscript.quit count "this variable "count" in order to get a return value by %ErrorLevel%
如果在bat 里调用该vbs脚本,并希望打印出提示信息 可以用下面的两种方法来实现: 1,在bat中加入如下代码 复制代码 代码如下: @echo off for /f "delims=" %%a in ("cscript //nologo c: .vbs") do ( set ScriptOut=%%a) echo Result: %ScriptOut%