首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

bat批处理文件查找和内容替换解决方法

2012-03-09 
bat批处理文件查找和内容替换我的开发环境下面有很多名字为Root的文本文件,想写一个bat脚本,替换所有Root

bat批处理文件查找和内容替换
我的开发环境下面有很多名字为Root的文本文件,想写一个bat脚本,替换所有Root文件中的指定字符串。
本来有很多文本处理工具可以做,但是我想用一个bat脚本来实现。
请大家多多指教。

[解决办法]
把文件名中包含root的文本文件中所有的-替换成/

BatchFile code
@echo offsetlocal ENABLEDELAYEDEXPANSIONfor /f %%i in ('dir /b /a:-d *root*.txt') do (call :replace %%i >%%i.replacedel %%iren %%i.replace %%i)goto :eof:replacefor /f "tokens=1,* delims=:" %%j in ('findstr /n ".*" %1') do (if "%%k"=="" (echo.) else (set tmpline=%%kset tmpline=!tmpline:-=/!echo !tmpline!))goto :eof
[解决办法]
写一个

BatchFile code
@echo off::把需要搜索的路径赋值给变量sp,这里举例是c:\tmpset sp=c:\tmp::把需要查找的文件名赋值给变量cf,这里举例是root.txtset cf=root.txt::把将被替换的字符串赋值给st,这里举例是appleset st=apple::把替换字符串赋值给dt,这里举例是lemonset dt=lemon::以上的这些赋值执行后,将会把C盘tmp文件夹下面包括子文件夹里的root.txt中的apple全部替换成lemon::下面的代码将完成替换工作for /r %sp% %%a in (%cf%) do (call :doit "%%~dpa")goto end:doitsetlocal enabledelayedexpansionpushd %1for /f "tokens=1,2* delims=:" %%i in ('findstr /n ".*" %cf%') do (set txt=%%jif "!txt!" == "" (echo.>>%1root.tmp) else (echo !txt:%st%=%dt%!>>%1root.tmp))move /y root.tmp root.txt:end
[解决办法]
探讨
写一个


BatchFile code
@echo off
::把需要搜索的路径赋值给变量sp,这里举例是c:\tmp
set sp=c:\tmp
::把需要查找的文件名赋值给变量cf,这里举例是root.txt
set cf=root.txt
::把将被替换的字符串赋值给st,这里举例是apple
set st=apple
::把替换字符串赋值给dt,这里举例是lemon
set dt=lemon

::以上的这些赋值执行后,将会把C盘tmp文件夹下面包括子文件夹里的root.txt中的apple全部替换成lemon

::下面…

热点排行