如何使用bat文件脚本替换文本文件中的文本?

Rel*_*lla 12 regex windows replace batch-file

所以我想创建一个带有3个参数的脚本:文件路径,要替换的确切单词,以及替换它的内容.怎么创造这样的东西?

通常我希望它有这样的API:

script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
Run Code Online (Sandbox Code Playgroud)

roc*_*est 7

在我的生活中,我写了两个批处理脚本,但是这里是如何从命令行获取输入:

script.bat filepath find replace
%1 = filepath, %2 = find, %3 = replace
Run Code Online (Sandbox Code Playgroud)

要做替换,请执行以下操作:

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.
)
Run Code Online (Sandbox Code Playgroud)

(直接取自@russ发布的链接,变量编号已更改.)

我认为这对你有用.


Ama*_*man 7

使用fnr实用程序比其他着名实用程序更好,因为它可以基于正则表达式进行搜索和替换.此外,对于UI爱好者,您可以在UI中配置选项,它可以生成命令行字符串,然后可以在您的脚本中使用.即使作为命令行搅拌也很容易使用.

在这里找到它http://findandreplace.codeplex.com/

它也是没有任何依赖的单个exe,因此易于使用.

例:

fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
      --find "find_str_expression" --replace "replace_string"
Run Code Online (Sandbox Code Playgroud)


kil*_*sh9 3

快速谷歌搜索发现了这个:

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