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

[文件操作] [己解决]批处理set命令怎么才能替换等号字符?

假设有一个的文本(1.txt)内容为:
11111111111111111111111
22222222222222222222222
333333333eeee="wwww"ffffffffffffff
eeeeeeeeeeeeeeeeeeeeeeeeeeeeee
sssssssssssssssssssssssssss

现在我要用批处理来删除eeee="wwww",也就是换其替换为空的意思

下面是我所用的代码,但不能替换=号
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (1.txt) do (
    set var=%%a
    set var=!var:eeee="wwww"=!
    echo.!var!
)
pause>nul

请问要怎样才能实现,在此先谢过了
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. sed -i "s/eeee=\x22wwww\x22//g" 1.txt
复制代码
下载 sed.exe 4.1.4:
http://bathome.net/thread-1114-1-1.html
1

评分人数

    • dali618: 我只能评这么多分技术 + 1

TOP

2# tmplinshi


首选感谢版主的回答,我现在就去试一下,OK了,回来给你加分

TOP

set替换默认以第一个等号为分隔符,所以据我所知不可能光用set变量替换完成,有两个折衷方案
一,for /l
  1. set str="123eeee="wwww"234"
  2. for /l %%a in (0 1 100) do (
  3. if "!str:~%%a,11!"=="eeee="wwww"" set n=10
  4. set /a n-=1
  5. if !n! leq 0 set /p=%%a<nul
  6. )
复制代码
二、for /f
  1. for /f "tokens=1-3 delims==" %%a in ("123eeee="wwww"234") do set tmp=%%a@%%b@%%a
  2. set tmp=%tmp:eeee@"wwww"=%
  3. echo %tmp:@==%
复制代码
但无论怎么弄,都很麻烦...

TOP

2# tmplinshi


感谢版主,己经解决,有一小点不明就是“X22”是不是代为引号的意思?

TOP

同样感谢4楼的朋友,用第三方己解决,不过有空还是参看一下你的

TOP

请问己解决标签在什么地文选上?

TOP

2# tmplinshi


感谢版主,己经解决,有一小点不明就是“X22”是不是代为引号的意思?
dali618 发表于 2011-3-31 16:11

是。

--------------------
请问己解决标签在什么地文选上?
dali618 发表于 2011-3-31 16:13


直接在标题前加 [已解决]

TOP

5# dali618


X代表16进制,16进制的22就是双引号的ASCII编码。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表