中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问: 批处理是靠什么程序来解释执行的?
作者:
标题: 请问: 批处理是靠什么程序来解释执行的? 上一主题 | 下一主题
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『楼 主』:  请问: 批处理是靠什么程序来解释执行的?

像vbs脚本是靠WScript.exe来解释执行的.
不知bat是用通过什么程序运行的. 一些朋友说是command.com
但我试过都不行, 包括cmd.exe.

[ Last edited by pengfei on 2006-9-16 at 08:43 ]

2006-9-15 04:27
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 2 楼』:  

看来你没理解批处理

commad.com是用来解释内部命令的

而dos中称的外部命令其实就是一个一个的小程序

批处理嘛  范围就更广了   大多数程序都可以直接来执行 获得你所需要的操作

如 dos群里某个帅哥 举的例子

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" www.qq.com



start www.qq.com

其实这些语句写进bat 或者cmd文件内都能执行  都能算是批处理

[ Last edited by kcdsw on 2006-9-15 at 07:10 ]

2006-9-15 07:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 3 楼』:  

可能是我没有理解批处理脚本的真正意义吧, 但WIN32平台下, 一些后缀关联的文件, 直接用鼠标把文件拖向执行程序, 就会自动打开, 如, wma等, 拖向real播放器.就会自动播放.
而把bat拖向command.com却没有执行脚本, 所以心中纳闷了...

[ Last edited by pengfei on 2006-9-16 at 08:10 ]

2006-9-15 09:16
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 4 楼』:  

可能二楼的例子不是真正意以上的批处理

我感觉,所谓的批处理应该大体上分为两种:
狭义的:(真正意义上的)
只含批处理的关键字(如: set,for,in ,if, exist ,goto 等等)和 DOS内部命令组成的脚本
广义的:(二楼说的应该属于此类)
把独立的程序名写进脚本中

2006-9-15 09:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 5 楼』:  

这个问题应该留给微软去解决。

2006-9-15 22:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





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

bat和exe一样不需要解释系统自动执行。调用bat可以用 cmd /c bat路径




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-9-16 03:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by electronixtar at 2006-9-16 03:10:
bat和exe一样不需要解释系统自动执行。调用bat可以用 cmd /c bat路径

我个人认为批处理是一个更接近脚本的可执行文件.  它还是要依赖各种内部和外部命令来完成.
而不是像exe那样, 不依赖其他程序能自己单独完成某件事情. 他是二进制的代码, CPU可以直接识别处理.
批处理却是一条条的dos命令, 不用我们一条条地往shell中输入.
但调用这一条条的指令, 在DOS平台下运行, 又是怎么实现的呢???

[ Last edited by pengfei on 2006-9-16 at 08:33 ]

2006-9-16 08:19
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
electronixtar
铂金会员





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

看看这个:

  Quote:
C:\>assoc .exe
.exe=exefile

C:\>ftype exefile
exefile="%1" %*

C:\>assoc .bat
.bat=batfile

C:\>ftype batfile
batfile="%1" %*

C:\>assoc .cmd
.cmd=cmdfile

C:\>ftype cmdfile
cmdfile="%1" %*

C:\>

新建一个bat,什么都不输入,双击,XP会提示:无效的Win32程序,呵呵,这充分说明了bat的特殊性




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-9-16 08:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 9 楼』:  

是不是批处理中没有任何命令, 所以command没有执行成功, 提示出错啦...
这就更加证实, 操作系统通过解释BAT中命令, 再调用DOS平台下的EXE程序来执行的!

[ Last edited by pengfei on 2006-9-16 at 08:54 ]

2006-9-16 08:50
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 10 楼』:  



  Quote:
我个人认为批处理是一个更接近脚本的可执行文件.  它还是要依赖各种内部和外部命令来完成.
而不是像exe那样, 不依赖其他程序能自己单独完成柠...

不也是将参数传递给exe 或者com程序

2006-9-17 03:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: