Board logo

标题: [文本处理] 如何利用批处理替换文件夹内的字符? [打印本页]

作者: lvguangmin    时间: 2011-2-26 22:35     标题: 如何利用批处理替换文件夹内的字符?

比如,E盘根目录下有个1的文件夹,文件夹内有很多ini文件
我想把文件夹内所有的(包涵子目录)INI中的123替换成456,ABC替换成DEF,请问如何写,谢谢

[ 本帖最后由 lvguangmin 于 2011-2-26 22:44 编辑 ]
作者: lvguangmin    时间: 2011-2-27 15:11

有没有人教一下呀,多谢了
作者: batman    时间: 2011-2-27 16:01

ini文件就要考虑空行和特殊字符的情况了:
  1. @echo off
  2. cd /d e:\1\
  3. for /r %%a in (*.ini) do (
  4.      (for /f  "tokens=1* delims=:" %%b in ('findstr /n .* %%a') do (
  5.             set "str=%%c"
  6.             setlocal enabledelayedexpansion
  7.             set "str=!str:*:=!"&set "str=!str:123=456!"
  8.             echo,!str:ABC=DEF!
  9.             endlocal
  10.      ))>tem
  11.      del /q %%a&ren tem %%~nxa
  12. )
  13. echo 搞定!&pause>nul
复制代码

作者: Batcher    时间: 2011-2-27 16:11

  1. @echo off
  2. for /r "E:\1" %%a in (*.ini) do (
  3.     sed -i "s/123/456/g; s/ABC/DEF/g" "%%a"
  4. )
复制代码

作者: lvguangmin    时间: 2011-3-1 14:13

原帖由 batman 于 2011-2-27 16:01 发表
ini文件就要考虑空行和特殊字符的情况了:@echo off
cd /d e:\1\
for /r %%a in (*.ini) do (
     (for /f  "tokens=1* delims=:" %%b in ('findstr /n .* %%a') do (
            set "str=%%c"
             ...



如果我想替换更多的字符,怎么修改呢
作者: batman    时间: 2011-3-1 14:58     标题: 回复 5楼 的帖子

你难道就不想动一下脑子!我相信你只要仔细看了代码,自己也会改的!完完全全一个伸手党!




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