国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 梁平县| 北碚区| 沁阳市| 凉山| 进贤县| 晴隆县| 通海县| 抚州市| 平罗县| 德化县| 九龙城区| 隆昌县| 苍南县| 若羌县| 安平县| 高淳县| 伊宁市| 社旗县| 瑞安市| 南丹县| 新兴县| 遂溪县| 桐乡市| 丽江市| 宜黄县| 清镇市| 柳林县| 于都县| 吕梁市| 满洲里市| 汉寿县| 岑巩县| 双城市| 犍为县| 福贡县| 军事| 伊宁县| 鸡东县| 黄平县| 太保市| 鹤岗市|