国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > VBScript > 正文

vbs 批量修改文件,bat 批處理文件調(diào)用執(zhí)行vbs,并在cmd窗口打印返回值(vbs運(yùn)行結(jié)果)

2020-06-26 18:27:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
使用vbs 腳本對(duì)工作目錄下的字符串進(jìn)行替換并統(tǒng)計(jì)被修改的文件數(shù)主調(diào)的批處理方法將捕捉該vbs腳本運(yùn)行后的結(jié)果并打印在cmd窗口。
 
示例代碼(t.vbs)如下: 
復(fù)制代碼代碼如下:

Set fso=Wscript.CreateObject("Scripting.FileSystemObject") 
flrName="D:/Workspace/src/" '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% 

上面的操作只執(zhí)行了處理文件的步驟 
如果不需要提取運(yùn)行結(jié)果,在批處理或主調(diào)vbs腳本里直接 運(yùn)行該vbs文件就行了。 

如果在bat 里調(diào)用該vbs腳本,并希望打印出提示信息 
可以用下面的兩種方法來(lái)實(shí)現(xiàn): 
1,在bat中加入如下代碼 
復(fù)制代碼代碼如下:

@echo off 
for /f "delims=" %%a in ('cscript //nologo c:/t.vbs') do ( 
set ScriptOut=%%a) 
echo Result: %ScriptOut% 

上面的 echo 打印字符串的格式自己根據(jù)需要定義,c:/t.vbs 文件目錄修改為你的vbs文件目錄。 

2,bat 中加入 
復(fù)制代碼代碼如下:

@echo off 
cscript //nologo c:/t.vbs 
echo -----Modify %ErrorLevel% "AssemblyInfo.cs" files successfully.----- 

上面echo 文本格式根據(jù)自己的需要定義 %ErrorLevel% 用來(lái)獲取 上面示例vbs文件結(jié)尾 count的值,同樣需要修改vbs文件的目錄 c:/t.vbs

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石家庄市| 常山县| 安仁县| 绥江县| 枣强县| 阜阳市| 德钦县| 大英县| 鹤山市| 河津市| 诸暨市| 泗阳县| 聊城市| 奉节县| 曲松县| 合水县| 南川市| 龙井市| 望江县| 南康市| 滦南县| 大悟县| 大名县| 宝应县| 阳新县| 合川市| 通海县| 桃园县| 孟津县| 荥阳市| 南陵县| 松阳县| 锡林浩特市| 仁布县| 巧家县| 舞阳县| 册亨县| 华蓥市| 城固县| 旅游| 梨树县|