中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 00:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问: 批处理是靠什么程序来解释执行的? 查看 1,398 回复 9
楼 主 请问: 批处理是靠什么程序来解释执行的? 发表于 2006-09-15 04:27 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
像vbs脚本是靠WScript.exe来解释执行的.
不知bat是用通过什么程序运行的. 一些朋友说是command.com
但我试过都不行, 包括cmd.exe.

[ Last edited by pengfei on 2006-9-16 at 08:43 ]
2 发表于 2006-09-15 07:06 ·  中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
20年会员
UID 53056
状态 离线
看来你没理解批处理

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 ]
3 发表于 2006-09-15 09:16 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
可能是我没有理解批处理脚本的真正意义吧, 但WIN32平台下, 一些后缀关联的文件, 直接用鼠标把文件拖向执行程序, 就会自动打开, 如, wma等, 拖向real播放器.就会自动播放.
而把bat拖向command.com却没有执行脚本, 所以心中纳闷了...

[ Last edited by pengfei on 2006-9-16 at 08:10 ]
4 发表于 2006-09-15 09:33 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
可能二楼的例子不是真正意以上的批处理

我感觉,所谓的批处理应该大体上分为两种:
狭义的:(真正意义上的)
只含批处理的关键字(如: set,for,in ,if, exist ,goto 等等)和 DOS内部命令组成的脚本
广义的:(二楼说的应该属于此类)
把独立的程序名写进脚本中
5 发表于 2006-09-15 22:52 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
这个问题应该留给微软去解决。
6 发表于 2006-09-16 03:10 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
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'>"
7 发表于 2006-09-16 08:19 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
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 ]
8 发表于 2006-09-16 08:43 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
看看这个:


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'>"
9 发表于 2006-09-16 08:50 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
是不是批处理中没有任何命令, 所以command没有执行成功, 提示出错啦...
这就更加证实, 操作系统通过解释BAT中命令, 再调用DOS平台下的EXE程序来执行的!

[ Last edited by pengfei on 2006-9-16 at 08:54 ]
10 发表于 2006-09-17 03:07 ·  中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
20年会员
UID 53056
状态 离线

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


不也是将参数传递给exe 或者com程序
论坛跳转: