中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 19:23
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 能在98的FOR中把两个命令连起来吗?在线! 查看 1,177 回复 12
楼 主 能在98的FOR中把两个命令连起来吗?在线! 发表于 2004-01-20 00:00 ·  中国 广东 广州 天河区 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
下面只能分开执行:
for %%1 in (c d e f) do command1 %%1
for %%1 in (c d e f) do command2 %%1

能把上面两个命令连起来执行吗?98的


2 发表于 2004-01-21 00:00 ·  中国 香港
管理员
★★★★
專業島民
积分 4,869
发帖 1,633
注册 2002-12-10 00:00
23年会员
UID 465
性别 男
状态 离线
試試這個吧
for %%a in (command1 command2) do for %%b in (c d e f) do %%a %%b
我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
3 发表于 2004-01-21 00:00 ·  中国 广东 广州 花都区 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
嘿嘿! 好, 我试试,要不要加 /f ,
是98 哦




4 发表于 2004-01-26 00:00 ·  中国 山西 太原 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re roy:

独立的DOS和98的DOS方式均不支持循环嵌套。可以改用以下的用法:

for %%a in (command1 command2) do %comspec% /c for %%b in (c d e f) do %%a %%b


※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
5 发表于 2004-02-02 00:00 ·  中国 江苏 扬州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
非常感谢两位, ROY斑竹,尤其是WILLSORT!
斑竹提醒了我括号中可用命令集,WILLSORT解决了我的疑惑,使我理解了 在DOS 中的COMMAND /C
谢谢了!
6 发表于 2004-02-03 00:00 ·  中国 重庆 电信
银牌会员
★★★
积分 2,202
发帖 499
注册 2003-06-12 00:00
23年会员
UID 4876
性别 男
状态 离线
以下是引用willsort在2004-1-26 21:29:28的发言:
Re roy:

    独立的DOS和98的DOS方式均不支持循环嵌套。可以改用以下的用法:

    for %%a in (command1 command2) do %comspec% /c for %%b in (c d e f) do %%a %%b





请问一下:这个%comspec% 是DOS的command.com的变量吗?
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
7 发表于 2004-02-03 00:00 ·  中国 江苏 扬州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
当然是啦! 用变量能绝对保证不出错

8 发表于 2004-02-03 00:00 ·  中国 重庆 电信
银牌会员
★★★
积分 2,202
发帖 499
注册 2003-06-12 00:00
23年会员
UID 4876
性别 男
状态 离线
哦,对对对,当然是啦,俺忘了某些时候用到的set comspec=...了; 您这里的报证不出错没有理解,能大概说下用变量与直接用可能引起的错误与区别吗? 谢谢






一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
9 发表于 2004-02-03 00:00 ·  中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re xiaojun:

%comspec%由系统自动赋值,直接引用即可,不需set。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
10 有新问题出现了!dos7.10的嵌套bug 发表于 2004-06-13 00:00 ·  中国 广东 广州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
willsort老兄你好!
在DOS7。10的命令行下,当前目录是C:,C:有三个TXT文件:1.txt,2.txt,3.txt.D:也有三个TXT文件,4.txt,5.txt,6.txt. 我要比较它们。键入
for %1 in (*.txt) do command /c for %2 in (d:\*.txt) do fc %1 %2>>abc
问题出现了:abc的内容为:
1.txt 比 4.txt
。。。。。。。。。(正常)
1.txt 比 5.txt
找不到文件 5.txt(当前目录是C:,所以,这个时候,它把d:\5.txt算作是c:\5.txt,所以找不到!也就是说,FOR循环命令中,第二次就忽略了d:\,而算作在当前目录!!)
1.txt 比 6.txt
同样找不到文件 6.txt。。。以下同理。。。
就是说,FOR循环中,第一轮正常,后面就出错了!
不过,我是在命令行下的,批处理还没试,应该一样吧

第二,用%comspec% /c 代替command /c时,说语法错误,奇怪!!

怎么回事?

另,在的xp的命令行中,没有这个问题, 一切正常。















11 发表于 2004-06-14 00:00 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re gotomsdos:

  我无法复现你所发现的问题。我所使用的环境是安装了本站MS-DOS7.1的
Win98DOS方式,同样在C盘和D盘的根各创建了如上三个文本文件,使用了以下的命令行用法,均得到预想的结果。

  1,FOR %1 IN (*.TXT) DO COMMAND /C FOR %2 IN (D:\*.TXT) DO FC %1 %2>> E:\ABC.TXT

  2,FOR %1 IN (*.TXT) DO %COMSPEC% /C FOR %2 IN (D:\*.TXT) DO FC %1 %2>> E:\ABC.TXT

  请再复查一遍你的运行环境以及文本文件的存在和属性。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
12 发表于 2004-06-14 00:00 ·  美国
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
willsort:MS-DOS 7.10完整版下既能启动Win3.x,又能启动Win95以及Win98,所以不应只说成是Win98的。我知道Win98自带的DOS通常是不能做到启动Win3.x的,没有那么纯。

gotomsdos:请注意一下LFNFOR命令的设置。将LFNFOR设为OFF试试,看有没有那个所谓的“BUG”。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

13 发表于 2004-06-16 00:00 ·  中国 广东 广州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
感谢两位回复!
willsort:谢谢你试了!各方面数据没错的。
Wengier: 好,我再按照您的提示试一试!
论坛跳转: