中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 19:11
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 百分号"%" 与 变量 的使用问题
可打印版本  1,398 / 9
第1楼 xyzup 发表于 2006-12-08 13:00
初级用户 发帖 16 积分 39
百分号"%" 与 变量 的使用问题
我来提几个问题吧:
"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楼 namejm 发表于 2006-12-08 13:18
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  你在一个帖子里问的不相干的问题有点多,显得有点乱,建议你拆分成几个独立的帖子来发问,可以合法正当地赚积分的,嘿嘿。

  先偷下懒,挑个简单的回答一下:for 后的 %%a 用在批处理文件中就必须要两个连用的百分号,在CMD窗口下执行的话,就只能用一个百分号了,这是for语句的一个规定。
第3楼 xyzup 发表于 2006-12-08 14:06
初级用户 发帖 16 积分 39
版主要我改标题..还真的不知道改什么好..
因为这属于个人的理解的问题...又有几个那么多...有点杂...
或者版主想到...帮我改一个..

谢谢第二个问题的答案...不说还真的不清楚原来在批处理..和CMD窗口执行是有区别的...
第4楼 namejm 发表于 2006-12-08 23:25
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  你说不知道如何修改标题,那是因为你在一个帖子里问了几个不甚相关的问题,建议你一个问题开一个帖子来提问,这样既解决了标题问题,也方便你以后的检索。
第5楼 jkclm 发表于 2006-12-08 23:44
新手上路 发帖 3 积分 7
我对变量的使用也才有点认识

可以通过 set 语句来实现

set/p hdid=请输入要格式化的磁盘(不包括冒号)
format %hdid%:
pause
第6楼 xyzup 发表于 2006-12-12 08:30
初级用户 发帖 16 积分 39
Originally posted by jkclm at 2006-12-8 10:44 AM:
我对变量的使用也才有点认识

可以通过 set 语句来实现

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



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

版主,这帖就放过我吧!!~~呵呵~~
以后绝不会有这种情况出现了~
还有,前两天坛子的域名好像解释不了~访问不到论坛啊
所以三天期限也过了~
第7楼 xyzup 发表于 2006-12-12 08:43
初级用户 发帖 16 积分 39
但是照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楼 yardian 发表于 2006-12-12 08:48
中级用户 发帖 85 积分 305
关键对usebackq不理解,看不懂help。希望高人能解释一下
第9楼 zyw052553 发表于 2006-12-19 03:15
新手上路 发帖 9 积分 18
eol=c - 指一个行注释字符的结尾(就一个)
eol=;
在这里指会分析文件中的每一行,忽略以分号打头的那些行
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
tokens=2
将每行中的第二个符号传递给 for 程序体
delims=xxx - 指分隔符集这个替换了空格和跳格键的 默认分隔符集。
delims=:
用:定界符号
usebackq
对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会 被理解成是用作定义某个要分析的字符串的。
第10楼 9527 发表于 2006-12-19 03:30
银牌会员 发帖 438 积分 1,185 来自 北京
我记不清这个问题在论坛问了多少遍了?就不能利用论坛的搜索功能找找吗?论坛开启搜索功能已经很方便啦,唉............
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023