10.9.2018
Como programadores nuestra máxima es: si algo hay que hacerlo 2 veces, entonces hay que automatizarlo. Es por eso que hoy queremos compartir una colección de scripts o comandos de Windows y Linux que usamos a diario y que pueden serles de utilidad.
Windows
Comprimir archivos con 7zip (cmd
)
Este comando comprime todos los archivos de texto (.txt) de una carpeta con 7zip y el nombre de archivo de salida tiene la fecha y hora de creación en formato ARCHIVO_YYYY-MM-DD_HHMMSS.zip
"C:\Program Files\7-Zip\7z.exe" a -tzip C:\PATH_SALIDA\ARCHIVO-DB_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.zip C:\PATH_ORIGEN\*.txt
Ejecutar un comando (vbs
)
Función para ejecutar un comando desde un script de vbs.
Function EjecutarComando(comando)
' Ejecuta un comando de sistema
' Argumento:
' comando [string] Comando a ejecutar
'
' Retorna:
' Codigo de salida del comando, generalmente 0 si termino OK, otro numero si fallo
Set oShell = WScript.CreateObject ("WScript.Shell")
EjecutarComando = oShell.run(comando,0,true)
End Function
Apagar el equipo (vbs
)
Inicia el proceso de apagado del equipo, mostrando un cuadro de dialogo para que el usuario pueda cancelarlo. Si no hace click en el botón de cancelar, la computadora se apaga.
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run("shutdown /p /t 60")
Dim confirmation
confirmation = MsgBox("Este equipo se apagara en 1 minuto" & vbCrLf & vbCrLf & "Cancelar?", vbOKOnly + vbInformation, "Apagando sistema")
If (confirmation = 1) then
objShell.Run("shutdown /a")
End if
Descargar archivo de internet (vbs
)
Función para descarga un archivo de internet.
Sub HTTPDownload( myURL, myPath )
dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")
dim bStrm: Set bStrm = createobject("Adodb.Stream")
xHttp.Open "GET", myURL, False
xHttp.Send
with bStrm
.type = 1 '//binary
.open
.write xHttp.responseBody
.savetofile myPath, 2 '//overwrite
end with
End Sub
HTTPDownload "https://SAMPLE.COM/archivo.zip","C:\PATH_SALIDA\archivo.zip"
Mostrar mensaje en área de notificación (powershell
)
Muestra una notificación (Windows 10) o globo en área de notificación.
function Show-BalloonTip {
[cmdletbinding()]
param(
[parameter(Mandatory=$true)]
[string]$Title,
[ValidateSet("Info","Warning","Error")]
[string]$MessageType = "Info",
[parameter(Mandatory=$true)]
[string]$Message,
[string]$Duration=10000
)
[system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$balloon = New-Object System.Windows.Forms.NotifyIcon
$path = Get-Process -id $pid | Select-Object -ExpandProperty Path
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balloon.Icon = $icon
$balloon.BalloonTipIcon = $MessageType
$balloon.BalloonTipText = $Message
$balloon.BalloonTipTitle = $Title
$balloon.Visible = $true
$balloon.ShowBalloonTip($Duration)
}
Show-BalloonTip -Title "Titulo de la notificación" -MessageType Info -Message "Esto es una prueba." -Duration 1000
Linux
Mostrar la IP local.
Si está conectado muestra la IP de la red local, si no informa DOWN.
#!/bin/bash
IS_UP="$(ip addr show enp3s0 | grep DOWN)"
IP="$(ip addr show enp3s0 | awk '$1=="inet"{print $2}' | cut -d"/" -f 1)"
if [ -z "$IS_UP" ]
then
echo "$IP "
else
echo "DOWN "
fi
Identificar si es sesión local o SSH.
Identifica si la sesión actual es un equipo remoto o local.
#!/bin/sh
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
/bin/echo -e "`pwd` @ `hostname` ⇨ \e[1;31mssh"
else
echo "`pwd` @ `hostname`"
fi
Renombrar archivos a secuencia numérica.
Renombra todos los archivos de una extensión particular (.txt por ej) de un directorio a una secuencia numérica, manteniendo la extensión.
ls | cat -n | while read n f; do mv "$f" "$n.txt"; done
Cambiar la extensión a todos los archivos.
Cambia la extensión de archivos manteniendo el mismo nombre de archivo. En el ejemplo se renombran todos los archivos de texto (*.txt) a markdown (.md)
for f in *.txt; do mv -- "$f" "${f%.txt}.md"; done