for /f "tokens=1-3 delims=,./ " %%a in ("111,222.333 444/555") do echo %%a %%b %%c
pause
只要将()里的字符串用引号扩起来,for就会把它当字符串来循环,而不是文本.
这次的for语句系列教程,打算按照for语句的5种句式逐一展开,在讲解 for /f 的时候,会穿插讲解批处理中一个最为关键、也是新手最容易犯错的概念:变量延迟,大纲如下: 引用:
一 前言
二 for语句的基本用法
三 for /f (含变量延迟)
四 for /r
五 for /d
六 for /l
一、前言
在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟练使用 for语句,已经成为衡量一个人批处理水平高低最主要的标准。
二、for语句的基本用法
正如色彩缤纷的七彩光芒是由红绿蓝三原色构成的一样,最复杂的for语句,也有其基本形态,它的模样是这样的:
在cmd窗口中: 复制内容到剪贴板
代码:
for %I in (command1) do command2在批处理文件中: 复制内容到剪贴板
代码:
for %%I in (command1) do command2之所以要区分cmd窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同,最明显的一个差异就是:在cmd窗口中,for之后的形式变量I必须使用单百分号引用,即%I;而在批处理文件中,引用形式变量I必须使用双百分号,即%%I。为了方便起见,若不是特别强调,以下的讲解都以批处理文件环境为例。
我们先来看一下for语句的基本要素都有些什么: 引用:
1、for、in和do是for语句的关键字,它们三个缺一不可;
2、%%I是for语句中对形式变量的引用,就算它在do后的语句中没有参与语句的执行,也是必须出现的;
3、in之后,do之前的括号不能省略;
4、command1表示字符串或变量,command2表示字符串、变量或命令语句;现在,你可能已经会写一个简单的for语句了,比如:
[example1] 复制内容到剪贴板
代码:
@echo off
for %%I in (www.51hei.com) do echo %%I
pause