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

[文本处理] 【已解决】批处理怎样将文本中指定的字符进行的替换(中间还涉及到变量延迟)?

本帖最后由 jian123ch 于 2014-10-11 23:14 编辑

有一名为test2.txt的文本,内容如下:
37        赵大        男        18        14.5        34        24        90.5        1
13        钱二二        男        18        15        34.5        22        89.5        2
11        孙小小        女        16        15.5        30.5        27        89        3
14        李四四        女        18        15        30.5        23        86.5        4
15        张三三        男        16        16        31        23        86        5
9        李四七        女        18        12        32        23        85        6
35        王二小        男        18        15        28.5        23        84.5        7
要将文中“女”全部替换成"男",然后将替换前与替换后以行行对应的形式输出在屏幕上如下所示:
37        赵大        男        18        14.5        34        24        90.5        1
37        赵大        男        18        14.5        34        24        90.5        1
=================================================================
13        钱二二        男        18        15        34.5        22        89.5        2
13        钱二二        男        18        15        34.5        22        89.5        2
=================================================================
11        孙小小        男        16        15.5        30.5        27        89        3
11        孙小小        男        16        15.5        30.5        27        89        3
=================================================================
14        李四四        男        18        15        30.5        23        86.5        4
14        李四四        男        18        15        30.5        23        86.5        4
=================================================================
15        张三三        男        16        16        31        23        86        5
15        张三三        男        16        16        31        23        86        5
=================================================================
9        李四七        男        18        12        32        23        85        6
9        李四七        男        18        12        32        23        85        6
=================================================================
35        王二小        男        18        15        28.5        23        84.5        7
35        王二小        男        18        15        28.5        23        84.5        7
=================================================================
我的代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (test2.txt) do (
  4. @echo %%i
  5. set strtmp=%%i
  6. set strtmp=%strtmp:女=男%
  7. @echo !strtmp!
  8. @echo ======================================================================
  9. )
复制代码
可是运行的结果,总是不能正确替换,结果如下:
37        赵大        男        18        14.5        34        24        90.5        1
ECHO 处于关闭状态。
=================================================================
13        钱二二        男        18        15        34.5        22        89.5        2
ECHO 处于关闭状态。
=================================================================
11        孙小小        男        16        15.5        30.5        27        89        3
ECHO 处于关闭状态。
=================================================================
14        李四四        男        18        15        30.5        23        86.5        4
ECHO 处于关闭状态。
=================================================================
15        张三三        男        16        16        31        23        86        5
ECHO 处于关闭状态。
=================================================================
9        李四七        男        18        12        32        23        85        6
ECHO 处于关闭状态。
=================================================================
35        王二小        男        18        15        28.5        23        84.5        7
ECHO 处于关闭状态。
=================================================================
还请各位大虾分析原因,指出错误所在,并给予更正,谢谢!

回复 1# jian123ch
  1. set strtmp=!strtmp:男=女!
复制代码

TOP

已解决,谢谢楼上的大侠!!!不过得装代码修改为
  1. set strtmp=!strtmp:女=男!
复制代码

TOP

变性,就这么简单,呵呵
如果有个叫做 白毛女 的人,名字也要改成 白毛男 吗?

TOP

纯粹的练习用的。呵。。呵。。见笑了!

TOP

返回列表