中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 征集批处理接受脚本语言返回结果的方法!
« [1] [2] »
作者:
标题: 征集批处理接受脚本语言返回结果的方法! 上一主题 | 下一主题
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『楼 主』:  征集批处理接受脚本语言返回结果的方法!

在批处理文件中接受vbs等其他脚本语言的返回结果的方法!!

2006-11-7 04:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 2 楼』:  

先举一例子引用youxi01用户的例子:
看看以下代码:

@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)

2006-11-7 04:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 3 楼』:  

1. 临时文件
2. 参数
3. 变量
4. 输出重定向

   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-11-7 23:02





C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-11-7 05:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 4 楼』:  

高人举几个例子  解释一下吧

2006-11-7 05:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 5 楼』:  

electronixtar的意思是,先用vbs脚本或者其它程序将返回结果写入文件,然后利用批处理读取文件就行了。

2006-11-7 05:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 6 楼』:  

哦 我明白了
youxi01可是用for /f   %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i方法不好使

2006-11-7 05:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 7 楼』:  

electronixtar
麻烦能不能举一个vbs脚本将返回结果写入文件,然后利用批处理读取文件的例子。
谢谢!!

2006-11-7 06:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 8 楼』:  

这个~~我写一个吧
a.vbs
CreateObject("Scripting.FileSystemObject").CreateTextFile("test.txt").write "hello"
b.bat
for /f  %a in ("test.txt") do @echo %a
其实我的批处理真的很菜~

   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-11-7 23:17





C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-11-7 08:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 9 楼』:  

我现在用
for /f   %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i
我想在startserver.py文件中取出变量status的值
怎么就去不出来呢  快疯了

2006-11-7 22:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 10 楼』:  

把批处理分成两部分第一部分调用vbs产生参数
再让vbs调用第二部分批处理带上参数这样可以不?

for /f   %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i这句括号里带 %status% //Nologo有什么用的啊??

2006-11-7 23:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zjh7547
新手上路





积分 4
发帖 2
注册 2006-9-5
状态 离线
『第 11 楼』:  

批处理中调用SQL脚本时如何返回结果?
比如要得到SQL Server 的安装目录 ,在批处理中如何得到?用sql命令就很简单了 ,可惜不知道如何将得到的字符串传回DOS中???

2006-11-7 23:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by sunyao at 2006-11-7 22:56:
我现在用
for /f   %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i
我想在startserver.py文件中取出变量status的值
怎么就去不出来堮..

) C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status%都输出什么内容?

) %status% 有这个变量吗?内容是什么?

) //Nologo 是针对wscript.exe的参数:不显示hui标,执行时不显示标致,
       这跟你那个wlst.cmd startserver.py %status% 有关系吗?



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 23:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 13 楼』:  

我输出startserver.py时显示
驱动器中没有标签
卷的序列号是9c83-6df1

2006-11-8 00:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunyao
初级用户




积分 141
发帖 60
注册 2006-10-28
来自 天津
状态 离线
『第 14 楼』:  

是不是如果dir出不来的文件就查不到呀

2006-11-8 00:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 15 楼』:  

for /f  "delims="  %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py') do echo %%i

再试一下输出什么?

只要你 c:\bea\weblogic91\common\bin\wlst.cmd startserver.py 的输出信息正常,
并且 wlst.cmd 代码中没有产生让你的 for /f ....主批处理遇到不可抗力的因素(如:战争、地震、……~:P)。

你 C:\bea\weblogic91\common\bin\wlst.cmd startserver.py 输出的什么文本信息,你for取回了就是什么(除了特殊情况)。

[ Last edited by redtek on 2006-11-8 at 12:12 AM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-8 00:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: