无忧启动论坛

标题: 这个for循环怎么啦?那里错了! [打印本页]

作者: rjn2307    时间: 2011-6-9 10:09
标题: 这个for循环怎么啦?那里错了!
DOS 7.1

for %%a in (C D E F G H I X) do if exist %%A:\nul if not "%dr%"=="%%a" echo %%a:\>>%tmp%\ls.txt
这个FOR循环只能将%%a:\显示,不能将%%a:\写入%tmp%\ls.txt
拆开不用FOR循环,可达目的
if exist C:\nul if not "%dr%"=="C" echo C:\>>%tmp%\ls.txt
if exist D:\nul if not "%dr%"=="D" echo D:\>>%tmp%\ls.txt
if exist E:\nul if not "%dr%"=="E" echo E:\>>%tmp%\ls.txt
.........


对不起:FOR-1.jpg多一个":",已重新上传

[ 本帖最后由 rjn2307 于 2011-6-11 13:11 编辑 ]

FOR-1.jpg (139.04 KB, 下载次数: 42)

FOR-1.jpg

FOR-2.jpg (104.45 KB, 下载次数: 43)

FOR-2.jpg

分开-1.jpg (142.41 KB, 下载次数: 43)

分开-1.jpg

分开-2.jpg (98.17 KB, 下载次数: 43)

分开-2.jpg

for-1a.jpg (140.78 KB, 下载次数: 55)

for-1a.jpg

作者: haiou327    时间: 2011-6-9 10:33
for %%a in (C D E F G H I X) do if exist %%a:\nul if not "%dr%"=="%%a" echo %%a:\ >>%tmp%\ls.txt

%%A和%%a是有区别的
作者: rjn2307    时间: 2011-6-9 11:25
谢谢版主,似乎不完全是“%%A和%%a”,请看截图,
问题是:
echo %%a:\>>%tmp%\ls.txt
变成了
echo %%a:\
后面的 >>%tmp%\ls.txt  不见了。
作者: haiou327    时间: 2011-6-9 13:51
测试完全正常屏幕输出定向到ls.txt文件
你可以把do后面用语句()括起来


作者: rjn2307    时间: 2011-6-10 07:49
谢谢关心和指导!
xp测试完全正常
我的使用环境是 dos7.1,()括起来语法错误,不能执行
我的本意:在列表中排除列表标题文件那个盘符,显示其他所有有效盘符

[ 本帖最后由 rjn2307 于 2011-6-10 07:58 编辑 ]
作者: xjn147    时间: 2011-6-10 22:05
兄弟啊,纯dos是不支持复杂的连续判断的

[ 本帖最后由 xjn147 于 2011-6-10 22:11 编辑 ]
作者: rjn2307    时间: 2011-6-11 12:55
标题: 回复 #6 xjn147 的帖子

原来如此
谢谢兄弟




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3