中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助!我的for的用法那里出错了?
作者:
标题: 求助!我的for的用法那里出错了? 上一主题 | 下一主题
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『楼 主』:  求助!我的for的用法那里出错了?

set l=1
set n=0
set t=1

for /f "skip=2 tokens=2,3,4" %%a in ('find "Type " GHSTSTAT.TXT') do (
if %n% LSS 1 goto error0
if %n% EQU 1 goto error2
if %t% GTR %n% goto 001
echo 你的第%t%分区的文件系统为:%%a
set /a t=%t%+%l%
)

:error0
echo 找不到硬盘

:error2
echo 硬盘只有1个分区,不能运行GHOST

:001

2006-7-14 08:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 2 楼』:  

你的思路有些问题,例如,如果没有硬盘你的批处理又怎么运行呢?还有判断机器上有几个分区这个好像跟本就不成吧?

@echo off
setlocal enabledelayedexpansion
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%a:\nul set ii=!ii!%%a:  &&set /a i+=1
)
echo 您机器上一共有( %ii% ) 这%i%个分区

2006-7-14 16:39
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
buddiyar
初级用户





积分 160
发帖 75
注册 2006-6-28
状态 离线
『第 3 楼』:  

"if exist %%a:\nul set ii=!ii!%%a: "

利用nul空设备判断是否存在c-z盘,并将其赋给ii变量以便调用显示
还可以这样判断的

if exist %%a:\boot.ini set ii=!i!%%a

另外"set ii=!i!%%a"中的!是用来对i做变量延迟的
哈哈 小的刚刚学到的啊 呵呵

2006-7-14 23:51
查看资料  发送邮件  发短消息 网志  OICQ (243589543)  编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 4 楼』:  

buddiyar的命令我就不知道
但是bagpipe的命令在DOS下是语法错误的,求解:为什么会是语法错误?

2006-7-15 00:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 5 楼』:  

纯DOS当然不成了,CMD命令提示符下还是可以的...........

2006-7-15 08:42
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: