看看以下代码:
@echo off
::写一个求字符串长度的vbs文件
echo temp=wscript.arguments(0) >temp.vbe
echo for i=1 to len(temp) >>temp.vbe
echo if asc(mid(temp,i,1))^<0 then >>temp.vbe
echo strlen=strlen+2 >>temp.vbe
echo else >>temp.vbe
echo strlen=strlen+1 >>temp.vbe
echo end if >>temp.vbe
echo next >>temp.vbe
echo wscript.echo strlen >>temp.vbe
:Start
set /p EN=请输入字符串:(直接回车退出)=
if not defined EN goto :Over
::获取vbe文件的执行结果
for /f %%i in ('cscript.exe temp.vbe %EN% //nologo') do echo.&echo 字符串长度为: %%i
set EN=
goto :Start
:Over
::删除生成的文件
del temp.vbe
这一句是关键:
for /f %%i in ('cscript.exe temp.vbe %EN% //nologo') do ......
利用for循环,读取vbs返回结果,也可以算是批处理接受脚本语言返回结果的一种解决办法吧。(当然在本程序中,没必要一定要使用for)