2011-03-29 318 views

回答

6

我写的东西就像我的生活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. 
) 

我认为这应该为你工作。

8

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

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

而且它是一个没有任何dependicies单个exe文件,很容易使用。

例子:

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

声明 “这是一个没有任何相关性的一个EXE” 是假的。 FNR是一个.NET应用程序,因此客户机上至少需要一个特定的.NET版本。来源:http://findandrereplace.codeplex.com/SourceControl/latest – 2014-09-09 12:00:23

+0

当前(1.7)版本不接受空的--dir参数。给出当前的工作目录将完成这项工作:--dir%CD% – 2014-09-09 12:15:13