windchen
驱动牛犊
驱动牛犊
  • 注册日期2004-08-11
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1568回复:8

用批处理文件怎样得到.exe中的一个字符串?

楼主#
更多 发布于:2004-11-22 08:47
我想把.EXE执行的结果以一个字符串的形式送到批处理文件中,作为批处理中的一个变量,怎样实现?谢谢!
hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-22 13:37
什么意思?能不能把问题具体的描述一下。

什么样的EXE文件,是控制台的程序吗?

你的批处理文件是在工程外吗?
大学课程加上语文吧,否则在驱网里都不会提问题:)
windchen
驱动牛犊
驱动牛犊
  • 注册日期2004-08-11
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-22 13:52
.exe是我写的一个可以在控制台上运行的程序,我要把.exe执行的结果放到批处理文件中进行字符串的比较,现在就是不知道怎样把exe运行的结果以字符串的形式送到bat文件中作为变量的值。还有就是批处理文件的 if命令能进行字符串比较吗?
hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-22 14:33
你是不是可以在EXE工程中利用写文件函数WritePrivateProfileString写入批处理文件的Setion下,然后由批处理进行处理(具体批处理是否可以还不清楚:))。

或者我考虑打破你原批处理的方式,将它做为一个配置文件INI和读配置文件进行操作的可执行文件,通过读INI文件中的配置信息执行不同操作,其效果与批处理相同。
这样实现的好处在于EXE文件就可以读写配置文件了,从而二者可以交互。


大学课程加上语文吧,否则在驱网里都不会提问题:)
windchen
驱动牛犊
驱动牛犊
  • 注册日期2004-08-11
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-24 16:53
没有用过ini,请问有什么学习的资料提供吗?我的mail:feng7902@163.com
hasis
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2006-04-03
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-25 08:42
INI配置文件就是由一些section和section下的一系列string所组成,通过读写string的值,可以实现读写配置信息。
使用函数包括WritePrivateProfileString等许多,你可以查一下MSDN中关于initialization-file functions的部分。
你可以上网去找一下,很多的例子。
大学课程加上语文吧,否则在驱网里都不会提问题:)
ironfox
驱动牛犊
驱动牛犊
  • 注册日期2004-11-29
  • 最后登录2005-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-29 09:16
什么执行结果,你是说0、1之类的return code吗??

如果是return code,在bat里面

用if errorlevel 1 goto 就可以实现跳转
gofayao
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2007-04-15
  • 粉丝0
  • 关注0
  • 积分210分
  • 威望21点
  • 贡献值0点
  • 好评度21点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2005-01-13 11:25
应该可以这样实现:
假如你的可执行程序为:1.exe
你可以编写一个批处理如下:

1.exe>>save.txt

这样你可执行文件执行的结果就保存在save.txt中了

如果你要将这个结果用在一个批处理中,你可以这样处理
假如,你要用一个批处理来查找,可执行文件运行的结果是不是规定的
文件中(orig.txt),那么你就可以这样写一个批处理:
copy 1.txt+save.txt+3.txt >>find.bat
find.bat
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
其中1.txt的内容为:
find "
3.txt的内容为:
" org.txt
if error level 1 goto exit
:exit
追求卓越...
KanHu
驱动大牛
驱动大牛
  • 注册日期2002-10-20
  • 最后登录2005-06-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-13 22:11
应该可以这样实现:
假如你的可执行程序为:1.exe
你可以编写一个批处理如下:

1.exe>>save.txt

这样你可执行文件执行的结果就保存在save.txt中了

如果你要将这个结果用在一个批处理中,你可以这样处理
假如,你要用一个批处理来查找,可执行文件运行的结果是不是规定的
文件中(orig.txt),那么你就可以这样写一个批处理:
copy 1.txt+save.txt+3.txt >>find.bat
find.bat
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
其中1.txt的内容为:
find "
3.txt的内容为:
" org.txt
if error level 1 goto exit
:exit
 

不错!
虚心请教 [img] http://www.driverdevelop.com/forum/upload/lsn_061/2005-01-09_2005-01-06_titi.jpg[/img]
游客

返回顶部