2011-03-29 56 views

Respuesta

6

He escrito algo así como 2 scripts batch en mi vida, pero aquí está cómo tomar la entrada de la línea de comando:

script.bat filepath find replace 
%1 = filepath, %2 = find, %3 = replace 

Para hacer el reemplazo, hacer algo como: (. Tomado directamente del enlace publicado por @russ, con los números variables cambiaron)

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. 
) 

creo que esto debería funcionar para usted.

8

uso fnr utilidad es mejor que otra utilidad famosa, ya que puede buscar y reemplazar en función de expresiones regulares. También para los amantes de la interfaz de usuario puede configurar opciones en la interfaz de usuario y puede generar cadenas de línea de comandos que luego se pueden usar en su secuencia de comandos. Muy fácil de usar incluso cuando se agita la línea de comandos.

Encuentra aquí http://findandreplace.codeplex.com/

También es solo exe sin dependicies, tan fácil de usar.

Ejemplo:

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

La declaración "es un solo exe sin ninguna dependencia" es falso. FNR es una aplicación .NET y, por lo tanto, requiere al menos una versión .NET específica en la máquina cliente. Fuente: http://findandreplace.codeplex.com/SourceControl/latest –

+0

Un parámetro --dir vacío no es aceptado por la versión actual (1.7). Sin embargo, dar el directorio de trabajo actual hará el trabajo: --dir% CD% –

Cuestiones relacionadas