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

时间:2011-03-29 18:31:36

标签: windows regex batch-file replace

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

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

script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"

3 个答案:

答案 0 :(得分:7)

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

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发布的链接,变量编号已更改。)

我认为这应该适合你。

答案 1 :(得分:7)

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

在此处查找http://findandreplace.codeplex.com/

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

示例:

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

答案 2 :(得分:3)

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

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