首页 电脑 电脑学堂 查看内容

解析改写源文件的批处理代码

2009-8-21 12:35 719 0

摘要: @echo offfor /f "delims=" %%a in (a.txt) do (   if not defined flag (   &nb...
关键词: nbsp txt flag echo 运行 面的 命令 abcdefg 内容 源文件

@echo offfor /f "delims=" %%a in (a.txt) do (   if not defined flag (      echo abcdefg>a.txt      echo %%a>>a.txt      set flag=a    ) else (      echo %%a>>a.txt   ))pause 这是一个改写源文件a.txt的代码,在源文件的第一行插入字符串 abcdefg解析:1、for /f "delims=" %%a in (a.txt) do    当运行了上面一句以后(注意此时还没有运行 do 后面的命令,   我们可以理解为for已经把a.txt的所有内容以行为单位保存到了内存。   也可以理解为此时a.txt是否存在或里面的内容是否改变已经不重要了。2、开始运行do 后面的命令   后面的命令很简单,其实只有一个 if 。。。else 。。 语句。    if not defined flag (      echo abcdefg>a.txt      echo %%a>>a.txt      set flag=a     该命令的意思是当变量flag没有被定义时则运行      echo abcdefg>a.txt  重定向abcdefg到a.txt并覆盖源内容      echo %%a>>a.txt     追加%%a到a.txt(此时%%a为源a.txt内容的第一行)      set flag=a          给变量flag定义,此句给flag定义什么值不重要,主要是给flag定义,以保证下次不再运行上面几句至此for的第一次循环完毕。3、当下一次循环时,因为上一次已经运行了 set flag=a    所以 if 语句不成立,所以会执行 else 后面的命令   也就是 echo %%a>>a.txt (此时%%a为原a.txt的第二行内容)   依此类推。。。直到循环全部完成。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部