[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
set 替换字符串时能不能用正则表达式呢?如果支持,就可以了替换这个字串中的等号了!!

TOP

本帖最后由 ge_xin_yu 于 2011-5-15 19:59 编辑

3# wc726842270

感谢答复,问题是实际上的文本内容中包含不止一个等号,如果用“delims==",那么其他的等号也被清空了。。。另外,我第一个等号前用了转义字符为什么批处理仍然将其作为赋值符号处理,而不是作为一个普通字符呢,??奇怪!!

TOP

本帖最后由 ge_xin_yu 于 2011-5-15 19:45 编辑

2# hanyeguxing
没法获取列,因为包含这个字符串文件大概有几十个,文件中的具体文本格式并不相同,即便在同一个文件中,这个字符串的位置也不相同,有的在第三列,有的在其他列,有的和其他字符串混在一起,而且实际上的行很长,远不止这几列,用列提取不出来,要提的话也太麻烦,只能替换~~~

TOP

本帖最后由 wc726842270 于 2011-5-15 09:07 编辑

好久没上了,也没什么太好的思路,不过可以先把“=”先拿下去,再加上来。“DELIMS==”,有兴趣就试一下吧,这里的“%STR:=1=2%”只会将第一个等号视为内定的符号(用词不准确)。当然除了这种思路外,还可以展转一下也可以
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

为什么不直接获取1、3列呢?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

批处理怎样替换包含等号的字符串?

1.txt中文本内容:
文本="刘姓" 动作="打开外部PDF文档" 页码="6"

现想将其中的“动作="打开外部PDF文档"”这几个字符串替换掉,写批处理如下:
  1. @echo off
  2. set a=动作="打开外部PDF文档"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in (1.txt) do (set str=%%i
  5. set str1=!str:%a%=!
  6. echo !str1! >>fix.txt
  7. )
  8. pause
复制代码
但是运行之后并没有得到希望得到的字符串:文本="刘姓"  页码="6" ,而是得到了这个结果:文本="刘姓" "打开外部PDF文档"=="打开外部PDF文档" 页码="6"  ,仔细检查可能问题出现在!str:%a%=!上,因为替换字符串中有=号,但加了转义字符也不管用。请帮忙看看。。。

TOP

返回列表