中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 22:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用批处理命令能否开多线程 查看 1,110 回复 4
楼 主 用批处理命令能否开多线程 发表于 2010-01-24 21:39 ·  中国 江西 南昌 电信
初级用户
积分 58
发帖 41
注册 2009-04-03 00:04
17年会员
UID 141951
性别 男
状态 离线
批处理命令都是一条命令值行完毕,再值行下一条.那么有没有什么方法开启双线程值行?
同时再问下,DOS命令成功完程,有没有反回值,是多少?怎样能得到.
2 发表于 2010-01-25 11:03 ·  中国 北京 中电华通通信有限公司
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
不能多线程。
但是很多命令都是单独的程序,可以用start使他们独立的去运行,比如:
@echo off
start comp %windir%\explorer.scf %windir%\explorer.exe /d
start msg %username% 哈哈哈哈哈
echo 三线程!!!
pause


返回值一般都是数字,有个系统变量叫 ERRORLEVEL,每个命令的具体意义都不太一样,可以去查询相关信息,可以紧跟在你执行的命令的下一行查看,不过好像每次执行一个命令(echo、set等除外)后都会重置
@echo off
type asdfg
echo 执行type后的返回值是 %ERRORLEVEL%
echo 执行echo后的返回值是 %ERRORLEVEL%
type %windir%\explorer.scf
echo 执行type后的返回值是 %ERRORLEVEL%
echo 执行echo后的返回值是 %ERRORLEVEL%
echo 所以echo没有改变它
pause
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
3 发表于 2010-01-25 13:30 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
只能多进程,不能多线程。
4 发表于 2010-01-25 19:56 ·  中国 江西 南昌 电信
初级用户
积分 58
发帖 41
注册 2009-04-03 00:04
17年会员
UID 141951
性别 男
状态 离线
首先,谢谢大家,
其次,我想问下,我那天写了10个ping(加了-t)的批处理,再用for运行,for的do后面我用call去掉用,可最后,一个都运行.这是为什么?是不是for要等到call掉用的文件执行完毕才会运行下一次循环?
5 Re 4楼 发表于 2010-01-25 20:00 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
把call改成start
论坛跳转: