Board logo

标题: [文本处理] 【已解决】批处理for语句形式变量定义的问题 [打印本页]

作者: c755731262    时间: 2015-4-19 16:02     标题: 【已解决】批处理for语句形式变量定义的问题

本帖最后由 c755731262 于 2015-4-20 16:20 编辑
  1. @echo off
  2. (for /f "delims=" %%a in ('type "测试.txt"') do if not defined %%a (echo,%%a &set %%a=def))>"结果.txt"
  3. pause
复制代码
奇怪 形式变量%%a和普通变量的定义好像不大一样?
作者: pcl_test    时间: 2015-4-19 16:20

有什么不一样呢?都是set 变量=值
作者: pcl_test    时间: 2015-4-19 16:25

本帖最后由 pcl_test 于 2015-4-19 16:26 编辑

如果说会觉得疑惑,大概是把形参当成变量了,在你给出的代码中,%%a只是代指,实际对象是txt的每一行内容,所以set %%a=def,实际是set 行内容=def,行内容才是变量
作者: c755731262    时间: 2015-4-19 17:34

回复 3# pcl_test


    确实感觉到奇怪,行内容做变量,这在以前没有碰到过,见到的应用例子不多
作者: gawk    时间: 2015-4-19 20:11

回复 4# c755731262


    类似关联数组或hash数组的思想,在文本处理里面是比较常见的。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2