所以我想创建一个脚本,它需要3个参数:文件路径,替换确切词,以及替换它的内容。如何创建这样的事情?如何使用bat文件脚本替换文本文件中的文本?
一般来说,我希望它有一个这样的API:
script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
所以我想创建一个脚本,它需要3个参数:文件路径,替换确切词,以及替换它的内容。如何创建这样的事情?如何使用bat文件脚本替换文本文件中的文本?
一般来说,我希望它有一个这样的API:
script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
快速谷歌搜索发现这一点:
我写的东西就像我的生活2个批处理脚本,但这里是如何从命令行输入:
script.bat filepath find replace
%1 = filepath, %2 = find, %3 = replace
进行替换,这样做:(直接从张贴@russ链接,与变量编号采取改变)
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.
)
我认为这应该为你工作。
使用fnr实用程序比其他知名实用程序更好,因为它可以根据正则表达式进行搜索和替换。此外,对于UI爱好者,您可以在UI中配置选项,并且可以生成命令行字符串,然后可以在您的脚本中使用它。即使作为命令行也很容易使用。
在此查找http://findandreplace.codeplex.com/
而且它是一个没有任何dependicies单个exe文件,很容易使用。
例子:
fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx
--find "find_str_expression" --replace "replace_string"
声明 “这是一个没有任何相关性的一个EXE” 是假的。 FNR是一个.NET应用程序,因此客户机上至少需要一个特定的.NET版本。来源:http://findandrereplace.codeplex.com/SourceControl/latest – 2014-09-09 12:00:23
当前(1.7)版本不接受空的--dir参数。给出当前的工作目录将完成这项工作:--dir%CD% – 2014-09-09 12:15:13