[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 ArdentMan 于 2011-7-12 08:13 编辑

为什么这样都不能理解呢?

For /F "tokens=1* delims=:" %%a In ('Findstr /n .* 1.txt') Do Set "_%%a=%%b"

在这个For循环中%%a变量所取的值为1.txt各行的行数(1-LastLine),

而%%b变量所取的值则为1.txt各行的内容(包括空行),

_%%a之所以在前面加个_是为了不用纯数字做为变量名以避免被cmd识别为%0-%9的参数,

那么这个赋值过程就为:Set "_1=第一行内容",Set "_2=第二行内容"....Set "_n=最后一行内容",

很明显在这个For循环定义的是n个变量,而不是用一个变量来储存所有的文本行,

用一个变量来储存所有文本行如下:
  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. For /F "delims=" %%a In (1.txt) do Set "Str=!Str! @ %%a"
  3. Echo %Str%
  4. Pause>Nul
复制代码
1

评分人数

一路飘过的鸟~~~

TOP

返回列表