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

[文本处理] [已解决]批处理怎样实现文本替换?

下面是txt文档里面的内容,很有规律:

<a title="搜狐" href="http://www.sohu.com">搜狐</a>
<a title="百度" href="http://www.baidu.com">百度</a>
<a title="网易" href="http://www.163.com">网易</a>

想把他变成下面的格式,并生成在另外一个文档里面:
搜狐,http://www.sohu.com,1
百度,http://www.baidu.com,1
网易,http://www.163.com,1

顺祝大家周末愉快!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
有创新,多创新;无创新,多模仿;无模仿,多坚持

  1. @echo off
  2. (for /f "tokens=3,5 delims==> " %%a in (1.txt) do for /f "tokens=1,2" %%c in ("%%~a %%~b") do echo %%c,%%d,1)>2.txt
复制代码

TOP

我看直接用引号分割就够了吧。

TOP

  1. @echo off
  2. (for /f "tokens=3,5 delims==> " %%a in (test.txt) do  echo %%~a,%%~b,1)>2.txt
  3. pause>nul
复制代码
一层for就能解决了,为什么还要嵌套呢?

TOP

3# applba
delims不能用引号作为分隔符

4# Hello123World
这个确实忘了,因为原先是分两步的,简化后忘了统一起来。

TOP

呀,回帖时忽然有了个猜想,验证下竟然真的可以,看来可以推翻delims不能用"作为分隔符的观点了:
  1. @echo off
  2. for /f tokens^=1*^ delims^=^" %%a in ("sd"z"vc") do echo %%b
  3. pause
复制代码
5

评分人数

TOP

本帖最后由 Hello123World 于 2011-5-21 14:59 编辑

1.为什么你的条件引号都没有也能行?
2.结果是z"vc  ,这说明"并不是真的作为分隔符在起作用。结果2是我错了,*会连同分隔符一起显示。

TOP

delims不能用"作为分隔符,估计是产生了语法错误,用^似乎也没法让"起作用。

TOP

1.为什么你的条件引号都没有也能行?
2.结果是z"vc  ,这说明"并不是真的作为分隔符在起作用。结果2是我错了,*会连同分隔符一起显示。
Hello123World 发表于 2011-5-21 14:53

1,以前一直惯性思维,没想过引号是的真实目的,我想for可能只能读取一个参数,而""就是把多个参数合并成一个参数的媒介,同时兼具转移作用,避免=被当成语句中的分隔符,所以就去掉引号,用转义来达到它的效果
2,没细看我的代码吗?
1

评分人数

TOP

耶,我终于也有技术创新了...

TOP

  1. @echo off
  2. (for /f tokens^=2^,4^ delims^=^" %%a in (test.txt) do echo %%a,%%b,1)>2.txt
  3. pause
复制代码
应用一下,用"作为分隔符来解决楼主的问题。

TOP

谢谢大家!顺祝大家工作顺利!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

10# zm900612


兄弟啊,我是随便说说的呀,没有考虑到这么多的

TOP

各位大大能解释一下这句吗?
(for /f tokens^=2^,4^ delims^=^" %%a in (test.txt) do echo %%a,%%b,1)>2.txt
一般看到的都是
for /f "tokens=1,delims=" 变量 in(文件名) do echo 变量
但是在这里怎么多加了2个符号 tokens^=2^,4^ delims^=^"这段代码该如何理解呢。感觉有点不好理解,望做个较详细的讲解,谢谢!

TOP

主要就是不理解。为什么要多加^这个。tokens=2不就得了。为何要加这个符号"^"。

TOP

返回列表