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

后端 未结 3 1495
故里飘歌
故里飘歌 2020-12-18 23:26

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

相关标签:
3条回答
  • 2020-12-19 00:07

    Use fnr utility its better than other famous utility since it can search and replace based on regular expressions. Also for the UI lovers you can configure options in UI and it can generate command line string which can then be used in your script. Very easy to use even as command line stirng.

    Find it here http://findandreplace.codeplex.com/

    Also it is single exe without any dependicies, so easy to use.

    Example:

    fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
          --find "find_str_expression" --replace "replace_string"
    
    0 讨论(0)
  • 2020-12-19 00:09

    A quick google search found this:

    http://www.dostips.com/?t=Batch.FindAndReplace

    0 讨论(0)
  • 2020-12-19 00:16

    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.

    0 讨论(0)
提交回复
热议问题