No sé que paso en esta semana, pero tome la decisión de comenzar a automatizar tareas. Y sí cuesta creerlo por el titulo pero lo hice simplemente con batch.
No suelo hacer esto pero inicialmente voy a dejar las fuentes, tanto como para que lean a otras personas así como también para que me queden cuál bookmark guardado:
Fuentes:
F2KO Software, esta página posee un set de script para usar. Particularmente use Bat To Exe Converter
http://www.f2ko.de/en/index.php
Para iniciarse en batch: http://www.robvanderwoude.com/batchstart.php
Otra página para iniciarse: http://steve-jansen.github.io/guides/windows-batch-scripting/part-1-getting-started.html
Ejemplos de scripts: http://luliserver.com.ar/?p=163
WGET: http://gnuwin32.sourceforge.net/packages/wget.htm
Les dejo un ejemplo de un script que arme. Este mismo es una especie de cliente de repositorio que hace la consulta al fileserver y descarga los instaladores en la terminal. Luego, sí el instalador lo permite, hace un silent install en la terminal. De esta manera inyecto en la terminal una linea de código para instalar nuevos programas o mantenerlos actualizados.
@ECHO off
::
:: repository-client
:: @created: 2016 04 26
:: @by: Pablo Gabriel Savoia
::
setlocal enabledelayedexpansion
title Repository
set ABS_PATH=%~dp0
set app=
set configFile=config.cmd
if not exist "%ABS_PATH%config.cmd" (
echo To run %~n0, you must config %configFile%
goto :EOF
) else (
call "%ABS_PATH%%configFile%"
)
if {%1}=={/?} goto :HELP
if {%1}=={/update} goto :UPDATE
if {%1}=={/list} goto :LIST
if {%1}=={/install} goto :INSTALL
goto :HELP
:HELP
echo.Usage: %~n0.bat
echo.
echo./? Help options.
echo./update Update all repository.
echo./list Show all install files.
echo./install Install file in silent mode.
echo.
goto :EOF
::IF %PROCESSOR_ARCHITECTURE% == x86 (
::
:: set app=%ProgramFiles%
::
:: ) ELSE (
::
:: set app=%ProgramFiles(x86)%
:: set app=%app%)
::
::)
:UPDATE
:: echo Detected directory: %~dp0
:: %~d0
:: CD %~p0
:: CD %TEMP%
IF NOT EXIST C:\Windows\Temp\repository (
md C:\Windows\Temp\repository
)
PUSHD C:\Windows\Temp\repository
if exist repository.list (
del repository.list
)
%wget% %repository%repository.list
for /f "tokens=*" %%a in (repository.list) do (
if not exist %%a (
%wget% %repository%%%a
)
)
POPD
goto :EOF
:LIST
IF NOT EXIST C:\Windows\Temp\repository (
md C:\Windows\Temp\repository
)
PUSHD C:\Windows\Temp\repository
if exist repository.list (
::for /f "delims=" %%D in ('dir /a: /b') do echo %%D
for /f "tokens=*" %%a in (repository.list) do (
echo %%a
)
POPD
) else (
echo Ejecute %~n0.bat /update .
)
goto :EOF
:INSTALL
if not (%2)==() (
if exist C:\Windows\Temp\repository\%2 (
call C:\Windows\Temp\repository\%2 /silent
) else (
goto :UPDATE
if exist C:\Windows\Temp\repository\%2 (
call C:\Windows\Temp\repository\%2 /silent
) else (
echo Se ha actualizado la lista, no existe el instalador %2 en el repositorio.
)
)
) else (
echo No ha ingresado el instalador.
echo Ejecute %~n0.bat /list para elegir un instalador.
)
goto :EOF
:EOF
pause
Este script, consulta a un archivo config.cmd en donde se encuentran las variables de configuración.
set wget="%ABS_PATH%bin\wget.exe" set repository=http://10.0.0.10/repository/
Y gracias al wget puedo hacer la descarga de los archivos. Lo pueden descargar de http://gnuwin32.sourceforge.net/packages/wget.htm