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