中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 18:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 百分号"%" 与 变量 的使用问题 查看 1,396 回复 9
楼 主 百分号"%" 与 变量 的使用问题 发表于 2006-12-08 13:00 ·  中国 广东 广州 中移铁通
初级用户
积分 39
发帖 16
注册 2006-12-06 14:21
19年会员
UID 72745
性别 男
状态 离线
我来提几个问题吧:
"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 ]
2 发表于 2006-12-08 13:18 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  你在一个帖子里问的不相干的问题有点多,显得有点乱,建议你拆分成几个独立的帖子来发问,可以合法正当地赚积分的,嘿嘿。

  先偷下懒,挑个简单的回答一下:for 后的 %%a 用在批处理文件中就必须要两个连用的百分号,在CMD窗口下执行的话,就只能用一个百分号了,这是for语句的一个规定。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
haiou327 +1 2007-05-13 20:58
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-08 14:06 ·  中国 广东 广州 中移铁通
初级用户
积分 39
发帖 16
注册 2006-12-06 14:21
19年会员
UID 72745
性别 男
状态 离线
版主要我改标题..还真的不知道改什么好..
因为这属于个人的理解的问题...又有几个那么多...有点杂...
或者版主想到...帮我改一个..

谢谢第二个问题的答案...不说还真的不清楚原来在批处理..和CMD窗口执行是有区别的...
4 发表于 2006-12-08 23:25 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  你说不知道如何修改标题,那是因为你在一个帖子里问了几个不甚相关的问题,建议你一个问题开一个帖子来提问,这样既解决了标题问题,也方便你以后的检索。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-12-08 23:44 ·  中国 江苏 南京 电信
新手上路
积分 7
发帖 3
注册 2006-12-03 00:37
19年会员
UID 72408
性别 男
状态 离线
我对变量的使用也才有点认识

可以通过 set 语句来实现

set/p hdid=请输入要格式化的磁盘(不包括冒号)
format %hdid%:
pause
6 发表于 2006-12-12 08:30 ·  中国 广东 中移铁通
初级用户
积分 39
发帖 16
注册 2006-12-06 14:21
19年会员
UID 72745
性别 男
状态 离线
Originally posted by jkclm at 2006-12-8 10:44 AM:
我对变量的使用也才有点认识

可以通过 set 语句来实现

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



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

版主,这帖就放过我吧!!~~呵呵~~
以后绝不会有这种情况出现了~
还有,前两天坛子的域名好像解释不了~访问不到论坛啊
所以三天期限也过了~
7 发表于 2006-12-12 08:43 ·  中国 广东 中移铁通
初级用户
积分 39
发帖 16
注册 2006-12-06 14:21
19年会员
UID 72745
性别 男
状态 离线
但是照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 ]
8 发表于 2006-12-12 08:48 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
21年会员
UID 39004
性别 男
状态 离线
关键对usebackq不理解,看不懂help。希望高人能解释一下
9 发表于 2006-12-19 03:15 ·  中国 陕西 西安 电信
新手上路
积分 18
发帖 9
注册 2006-12-18 14:06
19年会员
UID 73868
性别 男
状态 离线
eol=c - 指一个行注释字符的结尾(就一个)
eol=;
在这里指会分析文件中的每一行,忽略以分号打头的那些行
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
tokens=2
将每行中的第二个符号传递给 for 程序体
delims=xxx - 指分隔符集这个替换了空格和跳格键的 默认分隔符集。
delims=:
用:定界符号
usebackq
对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会 被理解成是用作定义某个要分析的字符串的。
10 发表于 2006-12-19 03:30 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
我记不清这个问题在论坛问了多少遍了?就不能利用论坛的搜索功能找找吗?论坛开启搜索功能已经很方便啦,唉............
我今后在论坛的目标就是做个超级坏人!!!
论坛跳转: