找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30863|回复: 7

[其他] 请教若干批处理命令的语法问题

[复制链接]
发表于 2011-12-19 16:28:03 | 显示全部楼层 |阅读模式
本帖最后由 CrLf 于 2011-12-19 20:15 编辑

1、        请教为什么有些命令的参数与命令之间可加空格也可以不加,如dir/b与dir  /b都不会出错,而有些命令与参数之间必须要至少有一个空格呢?如for /L中的for与/L之间至少要有一个空格。
2、        请教dos中的变量命名究竟有哪些规则?
————————————————————————
  1. rem 首先建立临时文件test.txt  
  2. echo ;注释行,这是临时文件,用完删除 >test.txt  
  3. echo 11段 12段 13段 14段 15段 16段 >>test.txt  
  4. echo 21段,22段,23段,24段,25段,26段 >>test.txt  
  5. echo 31段-32段-33段-34段-35段-36段 >>test.txt  
  6. FOR /F "eol=; tokens=1,3* delims=,- " %%i in (test.txt) do echo %%i %%j %%k
  7. Pause  
  8. Del test.txt
复制代码

在上面的代码中echo %%i %%j %%k为什么不能改为echo %%i %%m %%n呢?另外变量名中能包括数字或汉字吗?哪些字符是不能在变量名中出现的
3、     为什么有的字符串中间有空格一定要用双引号,而有的可加可不加? 假如C盘根目录下有”program files”、"te  st"两个文件夹。为什么在下面的代码中cd program files
中的program files可以不加双引号(加也可以),而
dir "te  st"中的"te  st"一定要加双引号呢?
_______________
  1. C:
  2. pause
  3. cd program files
  4. cd..
  5. pause
  6. dir "te  st"
  7. pause
复制代码

_________________
发表于 2011-12-19 17:02:34 | 显示全部楼层
不用DOS好多年。
发表于 2011-12-19 18:06:05 | 显示全部楼层
我来解释你的其中一个问题,cd 后面可以不加引号,是因为你只能进入一个文件夹。而dir 可以一次列出多个文件夹的内容,用空格隔开。
发表于 2011-12-19 20:09:22 | 显示全部楼层
1、for 和 if 是关键字,当 cmd 发现当前命令为此二者时将进行特殊解析。
其余命令由除重定向之外的首个字母到第一个分隔符或 / 为止是一个完整的命令名称或路径。

2、%%i、%%j、%%k 等都是 for 独有的参数变量(令牌),由 tokens 按字符顺序启用,默认情况下,tokens=1
[系列教程]批处理for语句从入门到精通[20101225更新] :http://bbs.bathome.net/thread-2189-1-1.html
其顺序按 unicode 编码排列,可以使用任意字符(包括汉字),但仅能为一个字符。
[讨论]批处理for命令的参数和扩展特性:http://bbs.bathome.net/viewthread.php?tid=12500
Windows 代码页与字符顺序:http://bbs.bathome.net/viewthread.php?tid=12329

3、双引号的作用除了转义,还有划分参数的作用,如 1 2 3 是三个参数,而 "1 2" 3 则是两个参数
凡是只支持一个参数的命令(开关除外),都无须使用 ""。
而支持多个参数的命令,则需要用 "" 对参数重新划分。
发表于 2011-12-19 20:38:51 | 显示全部楼层
1 不要拿For来做例子,For是特殊例子。
2 没有引号的空格是分隔符。
发表于 2011-12-19 22:32:46 | 显示全部楼层
不相干的问题建议分开发帖求助
发表于 2011-12-20 14:18:55 | 显示全部楼层
CMD/? 。。。。。。。
 楼主| 发表于 2011-12-23 10:28:18 | 显示全部楼层
本帖最后由 saint_Zuo 于 2011-12-23 10:29 编辑

谢谢各位了,这里的论坛的朋友好热心,我是个新手,要学的太多了!请多多指教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 17:04 , Processed in 0.018344 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表