Board logo

标题: [文本处理] [已解决]批处理如何替换txt文件中的字符? [打印本页]

作者: mjjwzp    时间: 2013-12-17 22:20     标题: [已解决]批处理如何替换txt文件中的字符?

本帖最后由 mjjwzp 于 2013-12-19 10:11 编辑

如a.txt文件内容:
mjj,123,456
478,dgds,8565,
qaf,asfwq,fq,
把“,”替换成“;”重新保存成b.txt

请教一下,谢谢!
作者: battab    时间: 2013-12-17 22:51

本帖最后由 battab 于 2013-12-18 00:12 编辑
  1. @echo off
  2. for /f %%i in (a.txt) do echo %%%i:,=;%>>b.txt
复制代码

作者: mjjwzp    时间: 2013-12-17 23:01

好像不行。
返回:
'%' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'%' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'%' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
请按任意键继续. . .
作者: xxpinqz    时间: 2013-12-18 00:58

打开记事本,把,替换成;不就行了
或者论坛上搜索下for 和set的用法
作者: 522235677    时间: 2013-12-18 09:38

  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do (set a=%%i&echo !a:,=;!>>b.txt)
复制代码
开启延迟环境变量扩展
作者: mjjwzp    时间: 2013-12-18 10:10

还是不行!
返回的结果:
!a:,=;!
!a:,=;!
!a:,=;!
作者: lgxxxx    时间: 2013-12-18 10:14

还是不行!
返回的结果:
!a:,=;!
!a:,=;!
!a:,=;!
mjjwzp 发表于 2013-12-18 10:10
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (set a=%%i&echo !a:,=;!>>b.txt)
复制代码

作者: mjjwzp    时间: 2013-12-18 15:42

7楼真厉害!谢谢。终于解决了。
作者: mjjwzp    时间: 2013-12-18 15:43

为什么加了“@echo off&setlocal enabledelayedexpansion”这一行就行,请多指教!
作者: battab    时间: 2013-12-18 16:25

setlocal enabledelayedexpansion 开启变量延迟,再把变量用!!括起来。
作者: mjjwzp    时间: 2013-12-18 17:10

哦,知道了,谢谢!
作者: mjjwzp    时间: 2013-12-19 10:10

[已解决]批处理如何替换txt文件中的字符?
作者: lifei259    时间: 2013-12-19 15:13

  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do (set a=%%i&call echo %%a:,=;%%>>b.txt)
  3. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2