所以我想创建一个带有3个参数的脚本:文件路径,要替换的确切单词,以及替换它的内容。如何创造这样的东西?
通常我希望它有这样的API:
script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
答案 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)
快速谷歌搜索发现了这个: