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)
在我的生活中,我写了两个批处理脚本,但是这里是如何从命令行获取输入:
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发布的链接,变量编号已更改.)
我认为这对你有用.
使用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)