web-dev-qa-db-ja.com

batファイルスクリプトを使用してテキストファイルのテキストを置き換える方法は?

したがって、3つの引数を取るスクリプトを作成したいと思います。ファイルへのパス、置き換える正確なWord、そして何を置き換えるかです。そのようなものをどのように作成するのですか?

一般的に私はそれがこのようなAPIを持っていることを望みます:

script.bat "C:/myTextDoc.xml" "_Word_TO_REPLACE_" "WordTo Use"
12
Rella

私は人生で2つのバッチスクリプトのようなものを書いていますが、コマンドラインから入力を取得する方法は次のとおりです。

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

置換を行うには、次のようにします。

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.
)

(@russによって投稿されたリンクから直接取得され、変数番号が変更されています。)

これでうまくいくと思います。

7
rockerest

fnrユーティリティは、正規表現に基づいて検索および置換できるため、他の有名なユーティリティよりも優れています。また、UI愛好家のために、UIでオプションを構成し、スクリプトで使用できるコマンドライン文字列を生成できます。コマンドライン攪拌としても非常に使いやすいです。

ここでそれを見つけてください http://findandreplace.codeplex.com/

また、依存関係のない単一のexeなので、使いやすいです。

例:

fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
      --find "find_str_expression" --replace "replace_string"
7
Aman

簡単なグーグル検索はこれを見つけました:

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

3
killdash9