Contar el número de líneas de los archivos en Windows con FIND

¿Cómo contar el número de líneas que tiene un archivo?
¿Cómo contar el número de líneas que tienen todos los archivos de un determinado formato?
¿Cómo contar el número de líneas que tienen todos los archivos de una carpeta determinada?

A través del comando de Windows find podemos contar el número de filas de un archivo en concreto. El uso más habitual del comando find es para buscar una cadena dentro de un archivo, pero en nuestros ejemplos sólo lo utilizaremos para contar filas.

Parmámetros que vamos a utilizar del comando find:

/V – Muestra todas las línias que no contengan la cadena (como no vamos a pasar ninguna cadena, las mostrará todas)
/C – Muestra el número de líneas que contiene la cadena (en nuestro caso, como se utiliza juntamente con el parámetro /V, contará todas la líneas)
Continue reading


PowerShell – Descargar todos los archivos de una carpeta ftp

Crear un script para descargar un archivo en concreto de un ftp es bastante sencillo y encontramos muchos ejemplos. Desde una máquina Windows, si queremos descargar todos los archivos de una carpeta en concreto de un servidor ftp sin saber el nombre de cada uno de los archivos ya es un poco más complicado.

A través de una consulta en http://stackoverflow.com/ he encontrado un script en PowerShell fantástico que funciona a las mil maravillas:

	
  #FTP Server Information - SET VARIABLES
    $ftp = "ftp://ftp.myserver.com" 
    $user = 'user' 
    $pass = 'password'
    $folder = 'Folder'
    $target = "C:\test\"


    #SET CREDENTIALS
    $credentials = new-object System.Net.NetworkCredential($user, $pass)

    function Get-FtpDir ($url,$credentials) {
        $request = [Net.WebRequest]::Create($url)
        $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
        if ($credentials) { $request.Credentials = $credentials }
        $response = $request.GetResponse()
        $reader = New-Object IO.StreamReader $response.GetResponseStream() 
        $reader.ReadToEnd()
        $reader.Close()
        $response.Close()
    }

    #SET FOLDER PATH
    $folderPath= $ftp + "/" + $folder + "/"

    $Allfiles=Get-FTPDir -url $folderPath -credentials $credentials
    $files = ($Allfiles -split "`r`n")

    $files 

    $webclient = New-Object System.Net.WebClient 
    $webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass) 
    $counter = 0
    foreach ($file in ($files)){
        $source=$folderPath + $file  
        $destination = $target + $file 
        $webclient.DownloadFile($source, $target+$file)

        #PRINT FILE NAME AND COUNTER
        $counter++
        $counter
        $source
    }



En este caso en el propio script le asignamos los valores de los parámetros, se podría modificar y pasar los parámetros al ejecutar.


Script vía Vía: http://stackoverflow.com/questions/19059394/powershell-connect-to-ftp-server-and-get-files



Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)


Batch para comprobar el estado de servicios Windows

Arrancar y detener servicios Windows.
NET START
NET STOP

Batch que permite comprobar el estado de un servicio Windows determinado y arrancarlo en caso de no estar en marcha.
Vamos a utilizar el comando sc query que nos da información del estado de los servicios.

	
for /F "tokens=3 delims=: " %%H in ('sc query NOMBRE_SERVICIO ^| findstr "  ESTADO"') do (
  if /I "%%H" NEQ "RUNNING" (
     net start NOMBRE_SERVICIO
  )
)

¿Cómo hacer que un servicio Windows esté siempre arrancado?
Con el batch anterior, ejecutándolo de forma periódica a través de una tarea programa de Windows.




Modificándolo ligeramente lo podemos usar para detener un servicio, en caso de no estarlo.

	
for /F "tokens=3 delims=: " %%H in ('sc query NOMBRE_SERVICIO ^| findstr "  ESTADO"') do (
  if /I "%%H" == "RUNNING" (
     net stop NOMBRE_SERVICIO
  )
)





Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)



Ejemplos robocopy con uso de parámetros de exclusión

Listo varios ejemplos de uso de robocopy utilizando los diferentes parámetros de exclusión disponibles.


El parámetro /XF excluye archivos.
El parámetro /XF excluye carpetas.


Exlcuir todos los archivos con extensión .txt, copia recursiva (/E), si los archivos .txt ya existen en el destino no los elimina:

> robocopy c:\origen\ e:\destino\ /E /XF *.txt

Aún usando el parámetro /MIR si los archvos .txt ya existen en el destino no se eliminan:

> robocopy c:\origen\ e:\destino\ /MIR /E /XF *.txt



Ecluir todos los archivos recursivamente, es como hacer una copia de la estructura de carpetas:

> robocopy c:\origen\ e:\destino\ /E /XF * 



Ecluir una carpeta, si ya existe en el destino no se elimina:

> robocopy c:\origen\ e:\destino\ /E /XD "C:\origen\capreta1"

Ecluir varias carpetas, si ya existen en el destino no se eliminan:

> robocopy c:\origen\ e:\destino\ /E /XD "C:\origen\capreta1" "C:\origen\capreta2"





Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)


Como crear un plan de copias de seguridad usando robocopy y forfiles

Plataforma: Windows
Objetivo
Configurar un .bat que copie backups SQL que se guardan en local en un máquina y copiarlos en una unidad de red. Se quieren guardar los últimos 8 backups, pero en local sólo caben 3.

Prerrequisitos
Carpeta origen: C:\BackupSQL\
Carpeta destino: \\192.168.1.10\Servidor\Copias\
En la máquina en local sólo se guardan los 3 últimos backups
En la unidad de red queremos tener los últimos 8 backups

Continue reading


Ejemplos Robocopy

Ejemplo Robocopy 1
Copiar la estructura de carpetas recursivamente, sin los archivos que pueda haber, sólo las carpetas vacías:
·El parámetro /XF * excluye todos archivos
·El parámetro /E copia subdirectorios
·El parámetro /Z indica que es modo reiniciable, es caso de pérdida de conexión continúa donde estaba
Origen d:
Destino f:

> robocopy d:\CarpetaA\ f:\CarpetaANoFiles\ /E /Z /XF *	

Si además queremos generar un log añadimos el parámetro /LOG:nombreArchivoLog.txt: Continue reading


nslookup – testear registros DNS MX desde la línia de comandos Windows

Aplicable a Windows XP y Windows 7

Como testear los registros DNS de correos(MX) des de la línia de comandos?

Opción1:
En la línia de comandos accedemos al comando nslookup
C:\Users\Administrador>nslookup
Especificamos el tipo de registros, en nuestro caso MX
> set type=MX
Testeamos las DNS MX de por ejemplo marca.com
> marca.com
nslookup1

Opción2:
Con el comando nslookup passandole como paramteros el tipo de registro y el dominio:
C:\Users\Administrador>nslookup -type=MX marca.com