找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 47848|回复: 16

[文本处理] [已解决]批处理怎样将指定字符替换为百分号?

[复制链接]
发表于 2010-8-22 10:07:16 | 显示全部楼层 |阅读模式
批处理要实现的目的:

将aaa替换为%aaa%,但无法输出百分号。

双写%%、加^、加双引号,的方法,都是不行的


希望能有人告知该如何写!或者提供其他替换文本的方法

我是这样写的:
  1. @echo off
  2. call :replace uuid.txt aaa %aaa%  > uuid1.txt

  3. :replace
  4.     setlocal ENABLEDELAYEDEXPANSION
  5.     for /f "tokens=1* delims=" %%i in (%1) do set var=%%i & echo !var:%2=%3!
  6.     endlocal
  7. goto :eof

  8. pause
复制代码

[ 本帖最后由 jie_xin 于 2010-8-28 10:45 编辑 ]
发表于 2010-8-22 13:55:25 | 显示全部楼层
在百分号千面加个 " ^ "应该可以解决
 楼主| 发表于 2010-8-22 18:03:22 | 显示全部楼层
试过这个方法,及加双引号,都不行
发表于 2010-8-22 20:42:48 | 显示全部楼层
换个思路,你看情况修改一下代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=*" %%a in (a.txt) do (
  4.   set str=%%a
  5.   set str=!str:aaa=#####aaa#####!
  6.   set str=!str:#####=%%!
  7.   echo !str!
  8. )
  9. pause
复制代码
发表于 2010-8-22 21:03:52 | 显示全部楼层
百分号需用百分号来转义 如显示 %2  则需要  echo %%2
发表于 2010-8-22 21:21:27 | 显示全部楼层
  1. sed "s/aaa/%aaa%/g" 1.txt >2.txt
复制代码
  1. gawk "gsub(/aaa/,"%aaa%")" 1.txt >>2.txt
复制代码
 楼主| 发表于 2010-8-23 09:19:22 | 显示全部楼层

回复 5楼 的帖子

麻烦看下我的要求。
我不是要echo百分号
是需要替换文本中的字符为百分号。

双写%%,及加双引号,都是不行的
 楼主| 发表于 2010-8-23 09:21:05 | 显示全部楼层

回复 6楼 的帖子

你的2个方法,试过都不行啊
 楼主| 发表于 2010-8-23 09:22:21 | 显示全部楼层

回复 4楼 的帖子

我是需要替换到文本当中,不是显示屏幕。

麻烦再帮帮我
发表于 2010-8-23 13:02:43 | 显示全部楼层
你需要考虑一下特殊情况,比如替换you为me,当遇到your的时候,your也会被替换mer。
你把echo !str!改为echo !str! >>tmp_.txt就可以了
 楼主| 发表于 2010-8-23 13:40:41 | 显示全部楼层

回复 4楼 的帖子

我试了下你的方法,只能是输出改变的结果,而其他为改变的数据,不能输出到新的文件。不知道还有么有解决办法
发表于 2010-8-23 15:22:42 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=*" %%a in (a.txt) do (
  3.   set str=%%a
  4.   for %%b in ("%%") do echo !str:aaa=%%~baaa%%~b!
  5. ))>uuid1.txt
  6. pause
复制代码
 楼主| 发表于 2010-8-24 09:38:02 | 显示全部楼层
非常感谢你的帮助。

方法可行。谢谢
发表于 2010-8-24 10:27:22 | 显示全部楼层

回复 8楼 的帖子

可能是你没有gawk和sed吧
 楼主| 发表于 2010-8-24 13:00:42 | 显示全部楼层
对。没有你提到的程序。

我觉得,用MS直接支持的命令比较好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:44 , Processed in 0.022337 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表