Script BASH – VERIFICAR QUE UN LOG ESTA ESCRIBIENDO, SI NO ESCRIBE DAR UNA ALERTA.

Publicado en Unix - Linux | Deja un comentario

BATCH- Script respaldo documento EXCEL con 10 versiones.

Este script lo grabaría en el escritorio de WINDOWS. Al pincharlo realizara una copia de la planilla EXCEL, hasta un máximo de 10 versiones. Al llegar a la versión 10, desaparecerá la versión más antigua y esta se grabar como versión 10 (la mas reciente). Luego abrirá la planilla EXCEL para trabajar. Se puede adaptar a la imaginación del usuario.

@echo off
setlocal enabledelayedexpansion
set ruta=d:\Fuentes\version\
set archivo=planilla.xlsx
set ver[2]=1
set ver[3]=2
set ver[4]=3
set ver[5]=4
set ver[6]=5
set ver[7]=6
set ver[8]=7
set ver[9]=8
set ver[10]=9
for /F %%i in ("%archivo%") do set nombre=%%~ni
if exist %ruta%%nombre%-10.xlsx goto renombra
for /L %%a in (1,1,10) do if not exist %ruta%%nombre%-%%a.xlsx set archver=%ruta%%nombre%-%%a.xlsx && goto copia
:renombra
   for /L %%a in (2,1,10) do (
      copy /Y %ruta%%nombre%-%%a.xlsx %ruta%%nombre%-!ver[%%a]!.xlsx >NUL
    )
set archver=%ruta%%nombre%-10.xlsx
:copia
copy /Y "%ruta%%archivo%" "%archver%" >NUL
start "" "%ruta%%archivo%" >NUL
if errorlevel 4 echo "El archivo esta ABIERTO, debe cerrarlo primero" && pause
goto:eof
Publicado en BATCH - DOS | Etiquetado , | Deja un comentario

BATCH – Obtener fecha y hora en SCRIPT BATCH Windows 10 para renombrar archivos o carpetas.

Al ejecutar el script, se obtiene el siguiente resultado. Pudiendo adaptarlo a cualquier situación que se requiera.

Publicado en Unix - Linux | Deja un comentario

BATCH – Script manejo de 2 archivos de texto. Resultado de comando en VARIABLE BATCH.  ERROR “no se reconoce como un comando interno o externo” en Script BATCH.

Para este ejemplo se utilizan 2 archivos de texto plano. “factura.txt” el cual contiene datos de facturas, con un código que es único en el archivo. El segundo archivo es “detalle.txt” el cual contiene el detalle de las facturas, identificados por el código de la factura y pueden ser múltiples líneas en el archivo.

El script une estos 2 archivos en el archivo “facdet.txt” el cual contiene las facturas y luego el detalle de dicha factura.

Existe un error que me dio en algún momento, específicamente en el comando “findstr” que se ejecuta dentro del ciclo FOR. Al ejecutar el SCRIPT me daba error “ no se reconoce como un comando interno o externo”.

Pero si el comando lo ejecutaba en la línea de comando o en el script fuera del ciclo FOR, si lo ejecutaba en forma correcta. Busqué alguna solución en la WEB y me di cuenta que muchas personas tenían este problema. La solución que daban todos era por problemas con la variable “PATH” de Windows. No era mi caso.

El problema me lo origino el antivirus que tenía, que por algún motivo, bloqueo la ejecución, pero solo cuando se gatilla dentro del ciclo FOR. Ni idea por qué.   Elimine el bloqueo y el problema se solucionó. Por si a alguien le pueda servir.

Publicado en Unix - Linux | Deja un comentario

BATCH – Contar caracteres de una cadena (largo de una variable) Script BATCH (cmd).-

@echo off
set cadena=%1
setlocal
call :len %cadena% a
echo La cadena %cadena% tiene %a% caracteres.
endlocal
goto :eof
:len
setlocal enabledelayedexpansion&set l=0&set str=%~1
:loop
set x=!str:~%l%,1!&if not defined x (endlocal&set "%~2=%l%"&goto :eof)
set /a l=%l%+1&goto :loop

La cadena se le pasa como parámetro al SCRIPT. Si la cadena contiene ESPACIOS, se debe ingresar encerrada en comillas simples

Publicado en Unix - Linux | Deja un comentario