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

[原创] 对“批处理for语句从入门到精通”的找茬行动

[复制链接]
发表于 2012-3-7 22:12:59 | 显示全部楼层
hello123world敢提qzwqzw敢说,倡导自由的讨论环境。找茬就不大好了,找不足还好,希望对作者有改进,对读者负责。大家继续!~
发表于 2012-3-7 22:29:03 | 显示全部楼层
回复 15# qzwqzw


    第一、获得全局设置,比如变量延迟、@echo off等。
    第一、界定行。一个命令一行。区别如FOR、IF、()等可以跨行的,以及标签等。获得和界定“行”应该是最基本的。
    第三、处理行。如你说的,将一行命令分解为几个命令,像&、|等。因为区分不同的命令才能执行不同的命令,这是必须的。在处理单行时,可能是利用了两个命令之间的属性进行区分,比如,利用&能够很快地区分前后两段内容,因此,else和&的意思都是一样的。
    第四、处理命令。处理某个命令,或某个命令组合。获得命令执行的环境、变量、对象、过程和结果等。
发表于 2012-3-17 17:36:41 | 显示全部楼层
回复 17# cjiabing
没想到
我那天的“梦话”都会有人回复
你所说的几点很有条理
我总体上是同意的

只是cmd的语句分析自有其复杂之处
他的词法分析和解析调用动作不会完全依照那个流程
这主要包括对嵌套的()的处理
对& | && || 的处理
发表于 2012-6-16 01:04:44 | 显示全部楼层
本帖最后由 CrLf 于 2012-6-16 01:10 编辑

回复 7# qzwqzw


  来个淫荡解:
  1. for /f eol^= %%a in (";test") do echo %%a
复制代码
见此贴第五部分:http://bbs.bathome.net/viewthread.php?tid=15748

评分

参与人数 1PB +8 技术 +1 收起 理由
qzwqzw + 8 + 1 多谢提醒!

查看全部评分

发表于 2012-6-28 11:07:12 | 显示全部楼层
看都看不怎么懂,哪来找茬,嘎嘎
发表于 2013-10-17 13:56:55 | 显示全部楼层
我用for /r 命令为什么可以查到隐藏文件夹呢
发表于 2013-10-21 19:19:29 | 显示全部楼层
回复 21# 戴娜拉


    可能你刚好打开显示系统隐藏文件功能了^
发表于 2014-4-26 01:49:21 | 显示全部楼层
@echo off start attrib c: d: e: f:
attrib c: d: e: f: *.ini
for %%I in (*.ini) do attrib %%I
echo on
pause
发表于 2014-4-26 08:05:11 | 显示全部楼层
回复 23# zh_1452


    关于attrib命令的使用请查询本版块教程资料,或者直接查询attrib/?
  1. C:\Users\Administrator>attrib/?
  2. 显示或更改文件属性。
  3. ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
  4.        [drive:][path][filename] [/S [/D] [/L]]
  5.   + 设置属性。
  6.   - 清除属性。
  7.   R 只读文件属性。
  8.   A 存档文件属性。
  9.   S 系统文件属性。
  10.   H 隐藏文件属性。
  11.   I 无内容索引文件属性。
  12.   [drive:][path][filename]
  13.       指定 attrib 要处理的文件。
  14.   /S 处理当前文件夹及其所有子文件夹中的匹配文件。
  15.   /D 也处理文件夹。
  16.   /L 处理符号链接和符号链接目标的属性。

复制代码

学批处理要有两个思想:
一是找正确的资料学习,不要乱写、瞎蒙。
二是写代码运行测试,不要想当然,写出来了以为就可以运行了,可以实现目的了。
发表于 2015-6-17 12:04:28 | 显示全部楼层
本帖最后由 只是时间问题 于 2015-6-17 16:13 编辑

for /f  读取 text 内容  以行为单位  行中出现空格 则当前行空格后面的内容读取不到
例如: test.txt
论坛的目标 是:不求最大,但求最好,做最实用的批处理论坛。
论坛地 址:bbs.bathome.net。
这里 是:新手晋级的福地,高手论剑的天堂。
@echo off
for /f %%i in (test.txt) do echo %%i
pause
输出结果为
论坛的目标
论坛地
这里


其实我想知道如何排除空格读取全部信息,不然出现空格读取不完全 或者截断不完全 有何意义?
发表于 2016-5-31 17:26:51 | 显示全部楼层
感谢分享!
发表于 2017-3-3 19:24:31 | 显示全部楼层
也没找出多少茬,O(∩_∩)O~
发表于 2017-4-14 22:48:27 | 显示全部楼层
谢谢你们的分享  ~~~~~~
发表于 2020-6-14 17:47:46 | 显示全部楼层
本帖最后由 aries215 于 2020-6-14 17:50 编辑

2.错误之处:“仅仅为了匹配第一层目录而存在:for /d” 整节内容,不知 for /d /r 可以枚举目录,说乏善可陈,多次抒情表达遗憾。
3.改正:重写。
4.详述理由:经测试,for /d /r 能枚举目录:
  1. for /d /r %%i in (*) do echo %%i
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 05:09 , Processed in 0.023539 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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