用于编辑文本文件和替换文本的批处理文件

时间:2011-12-15 22:35:23

标签: batch-file replace

我需要创建一个批处理文件,该文件将打开文本文件以查找特定文本并将其替换为另一个单词。然后保存文件并在完成后将其重命名为.reg。

3 个答案:

答案 0 :(得分:2)

@echo off
if exist %~N1.reg del %~N1.reg
for /F "delims=" %%l in (%1) do (
    set "line=%%l"
    set "line=%line:specific text=another word%"
    echo/%line%>> %~N1.reg
)

这是一个非常简单的批处理文件,适用于大多数情况。但是,如果文件内容可能具有特殊的批处理字符,例如|,则会出现一些问题> < &安培;但是,如果需要,可以修复此限制。

答案 1 :(得分:1)

如果这是针对Windows的,您可以使用:http://www.dostips.com/?t=Batch.FindAndReplace

  

此批处理允许在文本文件中替换字符串。它解析特定字符串的文本文件的每一行,并用另一个字符串替换它。   即用“uboot”替换“color.txt”中所有出现的“Yellow Submarine”并将输出放在屏幕上运行:
  BatchSubstitute.bat "Yellow Submarine" uboot color.txt
  或
  type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot

     

可选择将输出传输到新文件,即
  BatchSubstitute.bat "Yellow Submarine" uboot color.txt>newfile.txt
  或
  type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot>newfile.txt

@echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION

::BatchSubstitude - parses a File line by line and replaces a substring"
::syntax: BatchSubstitude.bat OldStr NewStr File
::          OldStr [in] - string to be replaced
::          NewStr [in] - string to replace with
::          File   [in] - file to be parsed
:$changed 20100115
:$source http://www.dostips.com
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B"
    if defined line (
        call set "line=echo.%%line:%~1=%~2%%"
        for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

答案 2 :(得分:-1)

不确定如何编写批处理文件来执行此操作,但您可以考虑使用Ruby!看看这个链接:http://viewsourcecode.org/why/hacking/wearingRubySlippersToWork.html