![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-24 02:33 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 征集批处理接受脚本语言返回结果的方法! |
| 可打印版本 2,896 / 26 |
| 第1楼 sunyao | 发表于 2006-11-07 04:00 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
征集批处理接受脚本语言返回结果的方法! 在批处理文件中接受vbs等其他脚本语言的返回结果的方法!!
|
|
| 第2楼 sunyao | 发表于 2006-11-07 04:02 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
先举一例子引用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) |
|
| 第3楼 electronixtar | 发表于 2006-11-07 05:13 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
1. 临时文件
2. 参数 3. 变量 4. 输出重定向 |
|
| 第4楼 sunyao | 发表于 2006-11-07 05:28 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
高人举几个例子 解释一下吧
|
|
| 第5楼 youxi01 | 发表于 2006-11-07 05:39 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
electronixtar的意思是,先用vbs脚本或者其它程序将返回结果写入文件,然后利用批处理读取文件就行了。
|
|
| 第6楼 sunyao | 发表于 2006-11-07 05:48 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
哦 我明白了
youxi01可是用for /f %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i方法不好使 |
|
| 第7楼 sunyao | 发表于 2006-11-07 06:45 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
electronixtar
麻烦能不能举一个vbs脚本将返回结果写入文件,然后利用批处理读取文件的例子。 谢谢!! |
|
| 第8楼 electronixtar | 发表于 2006-11-07 08:34 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
这个~~我写一个吧
a.vbs b.bat 其实我的批处理真的很菜~ |
|
| 第9楼 sunyao | 发表于 2006-11-07 22:56 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
我现在用
for /f %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i 我想在startserver.py文件中取出变量status的值 怎么就去不出来呢 快疯了 |
|
| 第10楼 zerocq | 发表于 2006-11-07 23:24 |
| 中级用户 发帖 196 积分 458 | |
|
把批处理分成两部分第一部分调用vbs产生参数
再让vbs调用第二部分批处理带上参数这样可以不? for /f %%i in ('C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status% //Nologo') do echo %%i这句括号里带 %status% //Nologo有什么用的啊?? |
|
| 第11楼 zjh7547 | 发表于 2006-11-07 23:44 |
| 新手上路 发帖 2 积分 4 | |
|
批处理中调用SQL脚本时如何返回结果?
比如要得到SQL Server 的安装目录 ,在批处理中如何得到?用sql命令就很简单了 ,可惜不知道如何将得到的字符串传回DOS中??? |
|
| 第12楼 redtek | 发表于 2006-11-07 23:52 |
| 金牌会员 发帖 1,147 积分 2,902 | |
Originally posted by sunyao at 2006-11-7 22:56: ) C:\bea\weblogic91\common\bin\wlst.cmd startserver.py %status%都输出什么内容? ) %status% 有这个变量吗?内容是什么? ) //Nologo 是针对wscript.exe的参数:不显示hui标,执行时不显示标致, 这跟你那个wlst.cmd startserver.py %status% 有关系吗? |
|
| 第13楼 sunyao | 发表于 2006-11-08 00:05 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
我输出startserver.py时显示
驱动器中没有标签 卷的序列号是9c83-6df1 |
|
| 第14楼 sunyao | 发表于 2006-11-08 00:09 |
| 初级用户 发帖 60 积分 141 来自 天津 | |
|
是不是如果dir出不来的文件就查不到呀
|
|
| 第15楼 redtek | 发表于 2006-11-08 00:10 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
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 ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |