Lista ficheros por extensión + DateDiff. VBScript

Scripts 3 Comentarios »

Este es un Script que he hecho para un amigo. Como me ha parecido un poco extraño que me preguntase por esto lo voy a plasmar aquí por si a alguien mas le ayuda.

¿Que hace el Script?

En el directorio seleccionado lista todos los ficheros con la extensión definida (en este caso "001") y si han pasado mas de 15 días desde su última modificación lo borra.

sExt = "001"
ahora=Now
With CreateObject("Scripting.FileSystemObject")
    For Each oFile In .GetFolder("c:\temp").Files
        If UCase(.GetExtensionName(oFile.Name)) = Ucase(sExt) Then
' Comparación con el día de la ultima modificación
            If datediff("d",oFile.DateLastModified,ahora)>= 15 Then
                Wsh.Echo oFile.Path
                    .deletefile(oFile.path)
            End If
        End If
    Next
End With

Si queréis que la diferencia sea entre el día de creación y hoy el DateDiff ha de ser el siguiente:

If datediff("d",oFile.DateCreated,ahora)>= 15 Then

para diferencia entre el día del ultimo acceso y hoy:

If datediff("d",oFile.DateLastAccessed,ahora)>= 15 Then

Ojo que como os he dicho tal y como está el Script borraría el fichero.

Saber si un proceso se está ejecutando. Visual Basic Script (vbs)

Scripts 3 Comentarios »

Simple script que nos dice si un proceso se está ejecutando. En el caso siguiente utilizo el notepad.exe pero claro sustituyendo el proceso podéis buscar cualquier otro.

Set WshShell = WScript.CreateObject ("WScript.Shell")
Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")

For Each objProcess in colProcessList
If objProcess.name = "notepad.exe" then
Encontrado = True
End if
Next
If Encontrado = True then
Msgbox("Proceso encontrado")
Else
Msgbox("Proceso No encontrado")
End If

Borrar impresoras de red con vbs. Visual Basic Script.

Scripts 2 Comentarios »

Aquí os dejo un script vbs (Visual Basic Script) que al ser ejecutado en un Pc con Windows lista las impresoras que hay instaladas en el sistema y borra todas las impresoras de red respetando las locales. Está probado en XP y 2000.

En mi caso lo he utilizado para hacer limpieza de las impresoras de red antiguas que algunos equipos tenían instaladas y que ya se encontraban obsoletas. Aplicado con ayuda de una directiva de Active Directory puede ser muy eficiente.

Evidentemente manipulando el script puedes hacer que las borre todas pero eso lo dejo para que os calentéis un poco la cabeza (no mucho).

strComputer = "."
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objShell = CreateObject("Wscript.Shell")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
Wscript.Echo "Enumero las impresoras del sistema:"
Wscript.Echo "______________________________"
For Each objPrinter in colInstalledPrinters
Wscript.Echo "Nombre: " & objPrinter.Name
Wscript.Echo "Localización: " & objPrinter.Location
if InStr(objPrinter.Name, "\\")> 0 then
    wscript.echo Now & " Borraré: " & objPrinter.Name
    WshNetwork.RemovePrinterConnection objPrinter.Name
end if
Next
Wscript.Echo Now & " Terminado. "

Si luego quieres añadir una nueva tan solo has de añadir al final del script por ejemplo:

'Añade la nueva impresora
WshNetwork.AddWindowsPrinterConnection "\\PrintServer1\Dell5210nPS"
'Pone la impresora por defecto
WshNetwork.SetDefaultPrinter "\\PrintServer1\Dell5210nPS"

Script Vbs para sustituir un fichero.

Scripts No hay Comentarios »

Script simple para sustituir el fichero de la imagen corporativa de la firma que los usuarios se crean en el Outlook.

En mi empresa cambiamos el logotipo y este script fué usado para cambiar a todos los usuarios la imagen del logotipo de la firma del correo. Está probado en Windows 2000 y XP.

¿Como funciona este script?
Busca el fichero de imagen dentro del directorio de usuario del pc donde se almacenan las firmas de los correos.
Si existe lo sustituye por el nuevo y deja un fichero "hecho.txt" para saber que en ese pc ya se ha ejecutado. Cuando al día siguiente el usuario hace login lo primero que busca el script es el fichero "hecho.txt", si existe termina y no modifica nada.

Si, ya se, este script es un poco personalizado para este caso pero espero que algunas partes del mismo le sean útiles a alguno de los lectores de este blog.

Set shell= WScript.CreateObject("WScript.Shell")
strUserName = shell.ExpandEnvironmentStrings("%USERNAME%")

dim Ruta
Ruta= "C:\Documents and Settings\" & strUserName & "\Datos de Programa\Microsoft\Signatures\"

call ShowFolderList (Ruta, strUserName)

Sub ShowFolderList(Ruta, strUserName)
  Dim fs, f, fc, s
  dim dia, mes, ano
  dia = day(date ())
  mes = month (date())
  ano = year (date())
  hora = hour(time())
  minuto = minute(time())

  strUserName = strUsername & fecha
  'WScript.echo strUserName
  Set fs = CreateObject("Scripting.FileSystemObject")
  If fs.FolderExists (Ruta) then
    Set f = fs.GetFolder(Ruta)
    Set fc = f.SubFolders
    if fs.FileExists(Ruta & "\hecho.txt") then
    '   WScript.echo "Ya esta"
    else
      For Each f in fc
        s = f.path & "\img001.gif"
        ' WScript.echo s
        if fs.FileExists(f.Path & "\image001.gif") then
            'WScript.echo f.path
            fs.CopyFile "P:\Informatica\firma\image001.gif", f.path & "\image001.gif"

        Set f = fs.CreateTextFile(Ruta & "\hecho.txt", True)
        Set f = fs.CreateTextFile("P:\informatica\firma\" & strUserName & "-" & dia & "-" & mes & "-" & ano & "-" & hora & "-" & minuto & ".txt", True)
        end if
      Next
    End if
  end if
End Sub

WP Theme & Icons originales por N.Design Studio.
Aviso Legal Entradas RSS Comentarios RSS Iniciar sesión