AutoIT

AutoIT es una pequeña utilidad que nos permite escribir scripts para Windows y automatizar ciertas tareas que con VBS o BAT nos costaría mucho trabajo. La síntaxis es similar a la de Visual Basic y lo más interesante es que se compila y genera un fichero .EXE que podemos ejecutar en cualquier equipo sin necesidad de tener AutoIT instalado.

Os dejo un script a modo de ejemplo, que desarrollé para migrar los documentos y carpetas del escritorio de un usuario a un directorio local y así evitar que el perfil móvil del usuario pese demasiado.

;
; Script AUTOIT para mover objetos del escritorio
; a "Mis documentos y crear acceso directorio en
;

; Establecer que si se producen errores fatales no salga del script
Opt("RunErrorsFatal", 0)

; Buscar los archivos del perfil...
$search = FileFindFirstFile(@DesktopDir & "\*")
; Comprobar que se encontró algo...
If $search = -1 Then
; No, no se ha encontrao nada ...:P
Exit
EndIf

; Flag para avisar que se le han movido archivos
$flag=0

; Por cada fichero que se encontró hacer el bucle...
While 1
; Obtener el nombre del fichero ...
$file = FileFindNextFile($search)
; Ver si hemos terminado el bucle
If @error Then ExitLoop
; Obtener los atributos del archivo
$attrs=FileGetAttrib(@DesktopDir & "\"& $file)
; Obtener la extension del archivo
$ext = stringRight( StringLower($file), 4)
; Por extension o en caso de que sea un directorio...
If (StringInStr($attrs, "D")) or ((NOT($ext == ".lnk")) and (NOT($ext == ".url")) ) Then
If (StringInStr($attrs, "D")) Then
; Tenemos que mover el archivo
DirMove ( @DesktopDir & "\"& $file, @MyDocumentsDir, 1 )
Else
; Tenemos que mover el archivo
FileMove ( @DesktopDir & "\"& $file, @MyDocumentsDir, 8 )
EndIf
; Crear acceso directo en el escritorio...
ShellExecute("\\SRV\NETLOGON\XXMKLINK.EXE",' "' & @DesktopDir & "\" & $file &'.lnk" "' & @MyDocumentsDir & '\' & $file & '"', @UserProfileDir)
$flag=1
EndIf
EndIf
WEnd


Este script se apoya en XXMKLINK que permite crear enlaces simbólicos de Windows.

No hay comentarios: