Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
709 views
in Technique[技术] by (71.8m points)

windows - How to replace text in text file using bat file script?

So I want to create a script that takes 3 arguments: path to file, exact word to replace, and with what to replace it. How to create such thing?

Generally I want it to have an API like this:

script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I have written something like 2 batch scripts in my life, but here's how to take input from the command line:

script.bat filepath find replace
%1 = filepath, %2 = find, %3 = replace

To do replacement, do something like:

for /f "tokens=1,* delims=]" %%A in ('"type %1|find /n /v """') do (
set "line=%%B"
if defined line (
    call set "line=echo.%%line:%~2=%~3%%"
    for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

(taken directly from the link posted by @russ, with the variable numbers changed.)

I think this should work for you.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...