Si es un lector habitual de este blog y le gusta su contenido quizá quiera contribuir a su mantenimiento. Cualquier cantidad por pequeña que sea será bien recibida.
Gracias por tu aporte.
Comentarios recientes
- Anónimo en UNIX – Pedir confirmación antes de ejecutar un script.-
- Rodrigo en LINUX – Parsear documento XML en script bash.
- Ricardo en LINUX – Parsear documento XML en script bash.
- Gonzalo Reiser A. en BASH – SCRIPT para monitoreo de archivo LOG.-
- Gonzalo Reiser A. en BASH – SCRIPT para monitoreo de archivo LOG.-
Archivos
- marzo 2024 (3)
- febrero 2024 (2)
- enero 2024 (11)
- diciembre 2023 (1)
- noviembre 2023 (10)
- septiembre 2023 (5)
- agosto 2023 (10)
- junio 2023 (3)
- mayo 2023 (4)
- abril 2023 (10)
- febrero 2023 (3)
- enero 2023 (1)
- diciembre 2022 (2)
- noviembre 2022 (1)
- agosto 2022 (4)
- julio 2022 (1)
- junio 2022 (4)
- febrero 2022 (9)
- abril 2021 (1)
- enero 2021 (3)
- diciembre 2020 (2)
- noviembre 2020 (2)
- octubre 2020 (1)
- septiembre 2020 (4)
- agosto 2020 (1)
- julio 2020 (1)
- junio 2020 (5)
- mayo 2020 (12)
- abril 2020 (1)
- enero 2020 (1)
- noviembre 2019 (5)
- octubre 2019 (4)
- septiembre 2019 (1)
- agosto 2019 (1)
- julio 2019 (11)
- junio 2019 (1)
- julio 2018 (3)
- octubre 2017 (1)
- septiembre 2017 (2)
- agosto 2017 (3)
- julio 2017 (11)
- mayo 2017 (6)
- abril 2017 (3)
- marzo 2017 (7)
- febrero 2017 (1)
- diciembre 2016 (3)
- octubre 2016 (4)
- septiembre 2016 (2)
- agosto 2016 (10)
- julio 2016 (9)
- junio 2016 (9)
- mayo 2016 (27)
- abril 2016 (10)
- marzo 2016 (15)
- enero 2016 (3)
- diciembre 2015 (7)
- octubre 2015 (2)
- septiembre 2015 (3)
- agosto 2015 (9)
- julio 2015 (11)
- junio 2015 (22)
- mayo 2015 (7)
- abril 2015 (22)
- marzo 2015 (5)
- febrero 2015 (2)
- enero 2015 (10)
- diciembre 2014 (7)
- noviembre 2014 (3)
- octubre 2014 (2)
- septiembre 2014 (4)
- agosto 2014 (22)
- julio 2014 (15)
- junio 2014 (8)
- mayo 2014 (6)
- abril 2014 (10)
- marzo 2014 (15)
- febrero 2014 (3)
- enero 2014 (15)
- diciembre 2013 (11)
- noviembre 2013 (25)
- octubre 2013 (46)
- septiembre 2013 (30)
Archivo de la categoría: BATCH – DOS
PsExec (SysInternals) – Herramienta de ejecución remota de comandos.
PsExec está considerado el más útil del paquete PsTools. Ejecuta comandos en el sistema remoto, incluso enviando un programa si no lo encontramos en el sistema objetivo. No necesita instalar DLL de apoyo, o aplicaciones de servidor especiales, sin embargo … Sigue leyendo
Publicado en BATCH - DOS
Deja un comentario
BATCH – Script vigila proceso en servidor UNIX.
Este script lo utilizo desde Windows 7, mediante una tarea programada, lo ejecuto indefinidamente cada 30 minutos. lo que realiza es «lanzar» un script en un servidor determinado y verificar si un proceso esta en ejecución. Captura la respuesta, si … Sigue leyendo
Publicado en BATCH - DOS
Deja un comentario
BATCH – Script para sacar la ruta de un ejecutable activo en Windows.
1 2 3 4 5 6 7 8 9 10 11 |
@echo off rem Sacando la ruta de un ejecutable activo. (cd %homedrive%\) :Code (cls) (set /p proceso=Nombre de proceso : ) (if not defined proceso (goto:Code)) for /f "tokens=*" %%x in ('wmic process get executablepath ^| find /i "%proceso%"') do (set ruta=%%x) (echo %ruta%) (pause>nul) (goto:eof) |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Script para quitar espacios a las variables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@ECHO OFF set variable1= Con espacios set variable2= quito los espacios echo Variable 1 = [%variable1%] echo Variable 2 = [%variable2%] echo. REM ======= Para quitar espacios en blanco de la variable ======= set variable1=%variable1: =% set variable2=%variable2: =% echo Variables sin los espacios en blanco echo ==================================== echo. echo Variable 1 = [%variable1%] echo Variable 2 = [%variable2%] pause |
Publicado en BATCH - DOS
3 comentarios
BATCH – Script para enviar correos.
SendEmail es un programa que nos permite enviar emails. El utilitario los puedes bajar desde la siguiente dirección URL : http://caspian.dotconf.net/menu/Software/SendEmail/ . El uso de este programa es sencillo, su sintaxis es : -s : servidor de correo. Si quieres … Sigue leyendo
Publicado en BATCH - DOS
4 comentarios
BATCH – Menu en batch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
@echo off color 0f mode con cols=50 mode con lines=15 :a1 cls echo Bienvenido, escoga la opcion: echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º 1.-Google º echo º 2.-You Tube º echo º 3.-Facebook º echo º 4.-Terra º echo º 5.-Hotmail º echo º 6.-Salir º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. set /p num=Escribe un numero[1,2,3,4,5,6]: if not defined num goto a1 if %num%==1 start www.google.cl if %num%==2 start www.youtube.com if %num%==3 start www.facebook.com if %num%==4 start www.terra.cl if %num%==5 start www.hotmail.com if %num%==6 exit goto a1 pause>nul exit |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Leer archivo y procesar cada linea que lo compone.
1 2 3 4 5 6 7 8 9 10 |
@ECHO OFF FOR /F "delims=·" %%A IN (archivo.txt) DO CALL:Tratar "%%A" rem Una vez leído el archivo y procesado se continua con el Script GOTO:EOF :Tratar rem aquí se procesa cada línea del archivo SET Reg=%~1 ECHO %Reg% GOTO:EOF |
Publicado en BATCH - DOS
Deja un comentario
BASH – Validar jecución de SCRIPT por cuenta «root».
Algunos scripts realizan tareas administrativas por lo cual podríamos querer que solo el usuario root ejecute el script. En ese caso podemos usar algo como esto:
1 2 3 4 5 |
#!/bin/bash if [[ $EUID -ne 0 ]]; then echo "Este script debe ser ejecutado por el usuario root" 1>&2 exit 1 fi |
Publicado en BATCH - DOS
Deja un comentario
BASH – Crear archivos de un tamaño determinado.
Sirve para crear archivos de un tamaño determinado. En la primera línea, creamos el archivo «archivo.doc» con un tamaño de 1024 KiloBytes. En la segunda línea lo creamos de 1024 Bytes.
1 2 3 |
dd if=/dev/zero of=archivo.doc count=1 bs=1024k dd if=/dev/zero of=archivo.doc count=1 bs=1024 |
Publicado en BATCH - DOS
Deja un comentario
BASH – Controlar tamaño de archivo LOG.
Este script puede ser modificado para controlar el tamaño de un archivo LOG. Por ejemplo cuando llegue al limite permitido que lo respalde y cree un nuevo archivo LOG.
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash log=procesos.log limite=10 # Ejemplo, para maximo de 10Mb. size=`ls -l $log | awk '{print$5}'` mb=`echo "scale=2; $size/1024" | bc -l` # El resultado con 2 decimales echo "Archivo: $log $mb Mb" echo "Limite: $limite" if [ $mb -ge $limite ]; then echo "Limite excedido" else echo "Limite ok" fi |
Publicado en BATCH - DOS
Deja un comentario
BASH – Tamaños de archivos.
Calcula el archivo de mayor tamaño y de menor tamaño de directorios pasados como parámetros y los muestra por pantalla :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#!/bin/bash function calcula { ls -l $1 | awk ' BEGIN { max = $5; } { if ($5 > max){ max = $5; ar1 = $9; } } END { print "Tamano mayor fichero = " max " " ar1; }' ls -l $1 | awk ' NR==2{ min = $5; next } { if ($5 < min){ min = $5; ar2 = $9; } } END { print "Tamano menor fichero = " min " " ar2; }' ls -l $1 | awk '{ suma += $5; } END { print "Total bytes ruta : " suma; }' # suma entre 1024 --> ls -l | awk '{ suma += $5; } END { print suma/1024/1024; }' } i=1 while [ $# -gt 0 ]; do # Mientras existan rutas... # Imprimimos la ruta echo echo La ruta es $1 calcula $1 i=$(($i+1)) shift done echo |
Publicado en BATCH - DOS
1 comentario
BATCH – Obtener la Dirección IP.
1 2 3 4 5 6 7 |
@echo off setlocal ENABLEEXTENSIONS & set "i=0.0.0.0" & set "j=" for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do ( if not defined j for %%b in (%%a) do set "i=%%b" & set "j=1") endlocal & set "dip=%i%" echo Direccion IP = %dip% pause |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Ejecutar un script BATCH con salida nula.
1 2 3 4 5 6 7 8 9 |
@echo off if exist temp.bat goto mibat copy /Y %0 temp.bat>>NUL call temp.bat>>NUL exit :mibat :: Aqui va el bat del /S /F /Q /A:- temp.bat exit |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Script para extraer el PID de un proceso.
1 2 3 4 5 6 7 8 9 |
@echo off FOR /F "tokens=1,2" %%i IN ('tasklist') DO ( IF "%%i"=="PROCESO1.exe" ( SET pid1=%%j ) IF "%%i"=="PROCESO2.EXE" ( SET pid2=%%j ) ) |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Script dependiente de la ejecución de otro.
Este código Script lo ejecuto mientras este en ejecución otro SCRIPT BATCH que su ventana se llama «proceso», si no lo detecta en ejecución finaliza (exit). En este script se utilizan 3 utilitarios (sendmail.exe – plink.exe y sleep.exe), los cuales … Sigue leyendo
Publicado en BATCH - DOS
Deja un comentario
BATCH – Agenda en DOS BATCH, un ejemplo interesante.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
@echo off title Agenda - by xassiz setlocal enabledelayedexpansion :menu cls echo: echo: ^| MENU ^| echo: echo: 1. Ver Agenda echo: 2. Agregar Tarea echo: 3. Salir echo: set "op=" set/p "op=>> " if not defined op (goto:menu) if ["%op%"]==["1"] (goto:Show) if ["%op%"]==["2"] (goto:Add) if ["%op%"]==["3"] (exit) goto:menu :Show cls for /f "tokens=*" %%x in (%~0) do ( set "line=%%x" if ["!line:~0,10!"]==["::AGENDA::"] ( set "line=!line:~10!" echo: echo:!line! ) ) echo: pause goto:menu :Add cls set "fecha=" set/p "fecha=- Fecha (dd/mm/aaaa): " if not defined fecha (goto:Add) echo: set "tarea=" set/p "tarea=- Tarea: " if not defined tarea (goto:Add) for %%y in ("fecha","tarea") do ( for %%z in ("^","&","<",">","|") do (set "%%~y=!%%~y:%%~z=^%%~z!") ) echo:::AGENDA::%fecha% - %tarea% >> %~0 goto:menu |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Ejemplo de función en DOS BATCH con retorno de valores.
1 2 3 4 5 6 7 8 9 10 |
@echo off Setlocal enabledelayedexpansion Set/p "num=Digito a multiplicar por 2: " Call:multiplica resultado !num! echo.!resultado! pause>nul&exit :multiplica set/a "%1=%2*2" goto:EO |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Verificador de numeros primos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION ECHO EJEMPLO: ECHO Entrada:1 2 3 4 5 6 7 8 9 10 11 12 13 ECHO Salida: 1 1 1 0 1 0 0 1 0 0 0 0 1 SET PROC=PROCESANDO SET /P N=INSERTE UNA CADENA DE NUMEROS A VERIFICAR SEPARADOS POR UN ESPACIO: :NEXTNUM IF "%FIN%"=="1" GOTO SHOWNUMS SET RN= :NEXTCHAR call set CHAR=%%N:~%NUM%,1%%% set /a NUM+=1 IF "%CHAR%" EQU " " (GOTO EMPIEZA) IF "%CHAR%" EQU "" SET FIN=1 IF "%CHAR%" EQU "" (GOTO EMPIEZA) SET RN=%RN%%CHAR% GOTO NEXTCHAR :EMPIEZA SET X=%RN% SET Y=%X% SET CT=0 SET /A Y=(5*%X%*%X%)+4 SET RETURN=POSITIVO GOTO CHECKROOT :POSITIVO IF "%EXACTO%"=="1" GOTO ISFIB SET RETURN=NEGATIVO SET /A Y=!Y!-8 GOTO CHECKROOT :NEGATIVO IF "%EXACTO%"=="1" GOTO ISFIB SET OUTP=%OUTP% 0 GOTO NEXTNUM :ISFIB SET OUTP=%OUTP% 1 GOTO NEXTNUM :SHOWNUMS CLS ECHO %OUTP% PAUSE EXIT :CHECKROOT CLS SET PROC=%PROC%. ECHO %PROC% SET /A DEND=!Y! SET EXACTO=0 FOR /L %%I IN (%DEND%, -1, 1) DO ( SET /A SQR=%%I*%%I IF !SQR!==%DEND% (SET EXACTO=1) ) GOTO %RETURN% |
Publicado en BATCH - DOS
Deja un comentario
BATCH – Incrementar una variable en DOS BATCH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@ECHO OFF setlocal enabledelayedexpansion SET /a v=0 FOR %%a IN (*.*) do ( CALL:INCREMENT ECHO !v! ) GOTO DONE :INCREMENT SET /a v+=1 GOTO EOF :DONE PAUSE :EOF |
Publicado en BATCH - DOS
Deja un comentario
BATCH – monitoreo archivo de log.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
@echo off mode con cols=85 mode con lines=5 set archivo=archivos.txt set depurado=depurado.txt set num=%1 set ruta1=/usr01/home/prod/EX_2009/sql/*.lst set ruta2=/APP01/home/prod/EX_2013/sql/*.lst set ruta3=/APP01/home/prod/EX_2013/sql/*.lst set ruta4=/APP01/home/prod/EX_2013/sql/*.lst set ruta5=/APP01/home/prod/EX_2013/sql/*.lst if %num%==1 set ruta=%ruta1% && set ano=2009 if %num%==2 set ruta=%ruta2% && set ano=2010 if %num%==3 set ruta=%ruta3% && set ano=2011 if %num%==4 set ruta=%ruta4% && set ano=2012 if %num%==5 set ruta=%ruta5% && set ano=2013 if %num%==6 exit :log tasklist /FI "WINDOWTITLE eq Vector" | findstr "cmd" || exit plink.exe -ssh -pw passwd usuario@servidor ls -ltr %ruta% > %archivo% type %archivo% | findstr ".lst" | findstr /v "app 0" | findstr /v "app 64" | findstr /v "cambia*" > %depurado% type %depurado% | findstr ".lst" && goto archivos sleep 60 goto log :archivos SET dia=%DATE:~,2% SET mes=%DATE:~3,2% SET ano=%DATE:~6,4% SET fecha=%dia%-%mes%-%ano% SET hor=%TIME:~,2% SET min=%TIME:~3,2% SET seg=%TIME:~6,2% SET hora=%hor%:%min% sendemail.exe -f desde@cor.cl -t para@cor.cl -u "Log %ano% con archivos encontrados %fecha% a las %hora% Hrs." -m "En el archivo adjunto puede ver los archivos detectados, debe reportarlo." -a %depurado% -s smtp.cor.cl sleep 40 goto log |
Publicado en BATCH - DOS
2 comentarios