Bien, hice esto rápido.
Hice una carpeta con los siguientes archivos:
archivo1.txt
archivo10.txt
archivo2.txt
archivo3.txt
archivo4.txt
archivo5.txt
archivo6.txt
archivo7.txt
archivo8.txt
archivo9.txt
El interior del archivo de cada uno es el siguiente:
archivo1.txt:
.....codigo......
##Other Properties
#
zipFileSourcePath=\\server1\BuildArchive\1.01\build_563456.zip
.....codigo......
Y así para todos.
El código del batch es el siguiente:
@echo off
setlocal enabledelayedexpansion
rem Cambiar lo siguiente por la ruta de tus archivos
rem Por ejemplo: c:\instaladores
set "instaladores_path=.\instaladores"
:prompt
set /p "build_version=Cual es la versión del build actual? "
if "!build_version!"=="" (goto:prompt)
for /f "tokens=*" %%_ in ('dir /b "!instaladores_path!\*.txt"') do (
for /f "tokens=*" %%s in ('type "!instaladores_path!\%%_"') do (
echo %%s | find "zipFileSourcePath" > nul 2>&1 && (
for /f "tokens=1,2 delims=_" %%# in ('echo %%s') do (
echo %%#_!build_version!.zip >> "!instaladores_path!\temp_%%_"
)
) || (
echo %%s >> "!instaladores_path!\temp_%%_"
)
)
copy /y "!instaladores_path!\temp_%%_" "!instaladores_path!\%%_"
del "!instaladores_path!\temp_%%_"
)
Esta es una corrida y lo que realiza sobre un archivo:
C:\Users\Leo\Desktop\Baúl\Batch>code.cmd
Cual es la versi├│n del build actual? 1.2.3.4.56
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
C:\Users\Leo\Desktop\Baúl\Batch>
Salida de los archivos:
C:\Users\Leo\Desktop\Baúl\Batch>type instaladores\archivo1.txt instaladores\archivo2.txt
instaladores\archivo1.txt
.....codigo......
##Other Properties
#
zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.2.3.4.56.zip
.....codigo......
instaladores\archivo2.txt
.....codigo......
##Other Properties
#
zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.2.3.4.56.zip
.....codigo......
C:\Users\Leo\Desktop\Baúl\Batch>
Antes de probarlo realiza un respaldo de los archivos donde vas a hacer el reemplazo. Usalo bajo tu propio riesgo.Advertencia:
El código batch se basa en la línea que comienza:
zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.2.3.4.56.zip
Para que el código funcione correctamente en la línea anteriormente solo debe de haber un caracter '_', que es el separa zipFileSource... de build_, si hay una más el código quizás no funcione.
Así que procura que solo haya el que está enseguida de build
_.
Saludos.