Board logo

标题: [文本处理] 批处理如何将某个文件当中的字串符替换? [打印本页]

作者: hello70    时间: 2011-11-17 16:41     标题: 批处理如何将某个文件当中的字串符替换?

文件位置在:H:\多线程\操作平台\新建文件夹23
文件名称  :打印本期结果.cpp

怎样将文件打印本期结果中的一段代码::fstream out1("H:\\多线程\\多线程\\生成数组、统计、显示可删除数1\\删除\\可删除数.txt",ios::app);//输出的位置,替换成:::ofstream out1("H:\多线程\操作平台\新建文件夹23\\可删除数.txt",ios::app);//输出的位置?
作者: hello70    时间: 2011-11-17 16:42

请高手赐教!
作者: 冷玉公子    时间: 2011-11-17 19:47

本帖最后由 冷玉公子 于 2011-11-17 19:50 编辑

内容不具体,也没有办法具体回答啊。
Windows 的命令中替换字符是用 Set 命令的例如
  1. @Echo Off
  2. For /F %%A In (打印本期结果.cpp) Do (
  3. Set "Str=%%A"
  4. Set "Str=!Str:多线程=少线程!"
  5. Echo !Str!
  6. )
  7. Pause
复制代码

这样就可以将内容中的多线程替换成少线程,但是不能直接更改文件。
可以选择输出到新的文件中。
作者: hello70    时间: 2011-11-17 20:33

我按照上面的方法如下:

@Echo Off

For /F %%A In (H:\多线程\操作平台\新建文件夹23\打印本期结果.h) Do (

Set "Str=%%A"

Set "Str=!Str:H:\\多线程\\多线程\\生成数组、统计、显示可删除数1\\删除\\可删除数.txt=H:\多线程\操作平台\新建文件夹23\\可删除数.txt!"

Echo !Str!

可是也没有达到效果

)

Pause
作者: CrLf    时间: 2011-11-17 23:46

回复 3# 冷玉公子


    setlocal enabledelayedexpansion 呢?
作者: hello70    时间: 2011-11-18 00:02

能否有具体代码
作者: awk    时间: 2011-11-18 08:42

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%a in (h:\多线程\操作平台\新建文件夹23\打印本期结果.h) do (
  4.     set "str=%%a"
  5.     echo !str!
  6.     set "str=!str:h:\\多线程\\多线程\\生成数组、统计、显示可删除数1\\删除\\可删除数.txt=h:\多线程\操作平台\新建文件夹23\\可删除数.txt!"
  7.     echo !str!
  8. )
  9. pause
复制代码





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