中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 百分号"%" 与 变量 的使用问题
作者:
标题: 百分号"%" 与 变量 的使用问题 上一主题 | 下一主题
xyzup
初级用户





积分 39
发帖 16
注册 2006-12-6
状态 离线
『楼 主』:  百分号"%" 与 变量 的使用问题

我来提几个问题吧:
"usebackq eol=; tokens=2 delims=:"里面的分别是什么意思..可否做一个最简单的例子..我查了一下cmd help 不怎么理解(还有其他否?)

还有for后面的 %%a 是否可以只用一个%a分号代表?? 一个和两个区别是什么?

a.bat中.
format %1
要format C 只能输入a.bat c: 这样吗?
不可以像C或其他语言那样在运行中提示输入吗?
例如:>运行format.bat
       >提示:请输入要格式化的盘
       >c:
       >格式化进行中..
       >完成
(chioce?)还有别的??

刚不久才对批处理感兴趣...有些无聊的问题,...希望各位不厌其烦..提点一下..

[ Last edited by namejm on 2006-12-11 at 07:47 PM ]

2006-12-8 13:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  你在一个帖子里问的不相干的问题有点多,显得有点乱,建议你拆分成几个独立的帖子来发问,可以合法正当地赚积分的,嘿嘿。

  先偷下懒,挑个简单的回答一下:for 后的 %%a 用在批处理文件中就必须要两个连用的百分号,在CMD窗口下执行的话,就只能用一个百分号了,这是for语句的一个规定。

   此帖被 +1 点积分    点击查看详情   
评分人:【 haiou327 分数: +1  时间:2007-5-13 20:58




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-8 13:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xyzup
初级用户





积分 39
发帖 16
注册 2006-12-6
状态 离线
『第 3 楼』:  

版主要我改标题..还真的不知道改什么好..
因为这属于个人的理解的问题...又有几个那么多...有点杂...
或者版主想到...帮我改一个..

谢谢第二个问题的答案...不说还真的不清楚原来在批处理..和CMD窗口执行是有区别的...

2006-12-8 14:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 4 楼』:  

  你说不知道如何修改标题,那是因为你在一个帖子里问了几个不甚相关的问题,建议你一个问题开一个帖子来提问,这样既解决了标题问题,也方便你以后的检索。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-8 23:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jkclm
新手上路





积分 7
发帖 3
注册 2006-12-3
状态 离线
『第 5 楼』:  

我对变量的使用也才有点认识

    可以通过  set  语句来实现

set/p  hdid=请输入要格式化的磁盘(不包括冒号)
format %hdid%:
pause

2006-12-8 23:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xyzup
初级用户





积分 39
发帖 16
注册 2006-12-6
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by jkclm at 2006-12-8 10:44 AM:
我对变量的使用也才有点认识

    可以通过  set  语句来实现

set/p  hdid=请输入要格式化的磁盘(不包括冒号)
format %hdid%:
pause

============
谢谢这位朋友啦.~~又学到一样新的东西了~

版主,这帖就放过我吧!!~~呵呵~~
以后绝不会有这种情况出现了~
还有,前两天坛子的域名好像解释不了~访问不到论坛啊
所以三天期限也过了~

2006-12-12 08:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xyzup
初级用户





积分 39
发帖 16
注册 2006-12-6
状态 离线
『第 7 楼』:  

但是照5楼jkclm那样写..也出现一个很奇怪的现象~

@echo off
set/p  hdid=请输入要格式化的磁盘(不包括冒号):
format %hdid%:
pause

按理说,当输入了盘号,就会执行format命令,然后pause,然后退出!~
但是好象循环了..不会跳出...(而且format时也没问我yes or no)
大家帮忙说明一下是怎么回事啦...我就觉得这些事情不可理解,,,

[ Last edited by xyzup on 2006-12-11 at 08:03 PM ]

2006-12-12 08:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yardian
中级用户




积分 305
发帖 85
注册 2005-5-23
状态 离线
『第 8 楼』:  

关键对usebackq不理解,看不懂help。希望高人能解释一下

2006-12-12 08:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyw052553
新手上路




积分 18
发帖 9
注册 2006-12-18
状态 离线
『第 9 楼』:  

eol=c - 指一个行注释字符的结尾(就一个)
    eol=;
    在这里指会分析文件中的每一行,忽略以分号打头的那些行
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
    tokens=2
    将每行中的第二个符号传递给 for 程序体
delims=xxx - 指分隔符集这个替换了空格和跳格键的 默认分隔符集。
     delims=:
     用:定界符号
usebackq
对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会 被理解成是用作定义某个要分析的字符串的。

2006-12-19 03:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 10 楼』:  

我记不清这个问题在论坛问了多少遍了?就不能利用论坛的搜索功能找找吗?论坛开启搜索功能已经很方便啦,唉............



我今后在论坛的目标就是做个超级坏人!!!
2006-12-19 03:30
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复

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


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



论坛跳转: