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

[文本处理] 批处理如何将某个文件当中的字串符替换?

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

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

请高手赐教!

TOP

本帖最后由 冷玉公子 于 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
复制代码

这样就可以将内容中的多线程替换成少线程,但是不能直接更改文件。
可以选择输出到新的文件中。

TOP

我按照上面的方法如下:

@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

TOP

回复 3# 冷玉公子


    setlocal enabledelayedexpansion 呢?

TOP

能否有具体代码

TOP

  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
复制代码

TOP

返回列表