El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Script VBScript Para Agregar Una Carpeta A La Variable De Entorno PATH

Posted by urpiano en Miércoles 13 \13\UTC agosto \13\UTC 2008

Este script recibe como parámetro una ruta de carpeta (si contiene espacios deberá estar encerrada entre comillas) y la añade a la variable de entorno Path.

Sintaxis

{wscript | cscript [//nologo]} agregar-a-path.vbs [/?] ruta

Siendo

Etiqueta Dato ¿Requerido? Descripción
  ruta
Ruta que se quiere agregar a la variable de entorno Path
?   No
Muestra la ayuda en línea.

Ejemplos:

– Se incluye la ruta “c:carpeta” a la variable de entorno %Path%:

wscript agregar-a-path.vbs "c:carpeta"

Este es el código del script

'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'* agregar-a-path.vbs                                                  *
'*                                                                     *
'* Este script recibe como parámetro una ruta de carpeta (si contiene  *
'* espacios deberá estar encerrada entre comillas) y la añade a la     *
'* variable de entorno Path.                                           *
'*                                                                     *
'* Sintaxis                                                            *
'*                                                                     *
'* {wscript | cscript [//nologo]} agregar-a-path.vbs [/?] ruta         *
'*                                                                     *
'* Siendo                                                              *
'*                                                                     *
'* - ruta (Requerido):                                                 *
'*         Ruta que se quiere agregar a la variable de entorno Path    *
'*                                                                     *
'* - /?: ayuda (Opcional):                                             *
'*         Muestra la ayuda en línea                                   *
'*                                                                     *
'*                                                                     *
'* Ejemplo:                                                            *
'*                                                                     *
'* - Se incluye la ruta "c:\carpeta" a la variable de entorno %Path%:  *
'*                                                                     *
'* wscript agregar-a-path.vbs "c:\carpeta"                             *
'*                                                                     *
'*                                                                     *
'*                                                                     *
'*                                                                     *
'* © Fernando Reyes                                                    *
'* Agosto De 2008                                                      *
'*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*
'*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

'Exigimos la declaración de variables
Option Explicit

Dim str_Error 'As String
Dim int_Error 'As String
Dim str_Ruta  'As String
Dim str_Path  'As String
Dim obj_FS    'As Scripting.FileSystemObject
Dim obj_SH    'As WScript.Shell

'Validando los argumentos y almacenando
'sus valores
If f_RevisarArgumentos( _
                       str_Error, _
                       int_Error) Then

    Call s_Ayuda(str_Error)
    WScript.Quit int_Error

End If

'Creamos un objeto FileSystemObject
Set obj_FS = CreateObject("Scripting.FileSystemObject")

'Creamos un objeto wshShell
Set obj_SH = CreateObject("WScript.Shell")

'Obtenemos el valor actual de la variable de entorno Path
str_Path = obj_SH.RegRead("HKLMSYSTEMCurrentControlSet" & _
					"ControlSession ManagerEnvironmentPath")

'Agregamos al Path actual la ruta recibida como parámetro
str_Path = str_Path & ";" & str_Ruta

'Escribimos el nuevo path en el registro
obj_SH.RegWrite "HKLMSYSTEMCurrentControlSetControl" & _
				"Session ManagerEnvironmentPath",str_Path

'Limpieza de culete :-)
Set obj_SH = Nothing
Set obj_FS = Nothing


Function f_RevisarArgumentos( _
                             str_Error, _
                             int_Error _
                             ) 'As Boolean
'***********************************************************************
'* Procedimiento: f_RevisarArgumentos                                  *
'* Tipo         : Función                                              *
'* Devolución   : Booleana                                             *
'* Fecha y Hora : 13/08/2008 8:52:53                                   *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Esta función revisa los argumentos recibidos,        *
'*                recogiendo los posibles fallos por falta de          *
'*                argumentos requeridos y almacenando en las           *
'*                variables correspondientes los argumentos            *
'*                recibidos. recibe dos parámetros cuyo fin es ser de  *
'*                salida: una cadena que almacenará los errores        *
'*                detectados y un entero que almacenará el código de   *
'*                los errores detectados. Hay tres tipos de error;     *
'*                error 1 para los argumentos sin nombre requeridos y  *
'*                no encontrados, error 2 para los argumentos con      *
'*                nombre requeridos y no encontrados, por último,      *
'*                error 4 para los combos de argumentos opcionales     *
'*                (un combo de argumentos opcionales es aquel          *
'*                conjunto de argumentos opcionales que es requerido   *
'*                que se pase al menos uno de ellos y que si se pasa   *
'*                más de uno se ignorarán aquellos que estén detrás    *
'*                en la prioridad entre ellos; una característica      *
'*                clara de lo que es un combo de argumentos es cuando  *
'*                dos omás argumentos almacenan su valor en la misma   *
'*                variable). En el caso de producirse más de un tipo   *
'*                de error, el número de error será la suma de ambos   *
'*                de los errores recibidos, es decir 3, 5 o 6          *
'***********************************************************************

    Dim bol_Devolucion 'As Boolean
    Dim bol_Error1 'As Boolean
    Dim bol_Error2 'As Boolean
    Dim bol_Error4 'As Boolean

    'Iniciamos los indicadores
    bol_Devolucion = False
    bol_Error1 = False
    bol_Error2 = False
    bol_Error4 = False


    'Si hay que mostrar la ayuda, se muestra y
    'termina el script
    If WScript.Arguments.Named.Exists("?") Then

        Call s_Ayuda("******************" & vbCrLf & _
                     "*     AYUDA      *" & vbCrLf & _
                     "******************")

        WScript.Quit 0

    End If

    'Revisamos si están todos los argumentos
    'sin nombre requeridos
    If WScript.Arguments.Unnamed.Count < 1 Then

        str_Error = "Error 1, falta/n argumento/s sin " & _
                    "nombre requerido/s"
        bol_Error1 = True

    Else

		'Guardamos los argumentos en las variables
		'correspondientes
		str_Ruta = WScript.Arguments.Unnamed(0)
		
		'Comprobamos que la ruta existe en el sistema.
		'Para ello utilizaremos un objeto FileSystemObject
		Dim obj_FS

		'Creamos el objeto FileSystemObject
		Set obj_FS = CreateObject("Scripting.FileSystemObject")
		
		'Si la ruta no existe lo marcaremos como error
		If Not obj_fs.FolderExists(str_Ruta) Then
		
			str_Error = "Error 2, la ruta """ & str_Ruta & _
						""" recibida como parámetro no existe."
						
			bol_Error2 = True
			
		End If

    End If

    'Preparamos las variables de devolucion:
    'el entero como suma de los posibles errores 1, 2 y 4
    int_Error = Abs(bol_Error1) + _
                (2 * Abs(bol_Error2)) + _
                (4 * Abs(bol_Error4))
    'La devolucion de la función será True en caso de
    'haber alguno de los errores
    bol_Devolucion = (bol_Error1 Or bol_Error2 Or bol_Error4)

    'Hacemos la devolución de la función
    f_RevisarArgumentos = bol_Devolucion

End Function 'f_RevisarArgumentos

Sub s_Ayuda(str_Error)
'***********************************************************************
'* Procedimiento: s_Ayuda                                              *
'* Tipo         : Sub                                                  *
'* Devolución   :                                                      *
'* Fecha y Hora : 13/08/2008 8:52:53                                   *
'* Autor        : Fernando Reyes                                       *
'*¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*
'* Propósito    : Este procedimiento muestra la ayuda en línea.        *
'*                Recibe un parámetro de tipo cadena que si viene      *
'*                será mostrado antes de la línea; pensado para que    *
'*                se muestre un error que se haya detectado.           *
'***********************************************************************

    'Si hay que mostrar algún texto previo a la ayuda, lo hacemos
    If Len(str_Error) > 0 Then

        WScript.Echo str_Error & vbCrLf & vbCrLf

    End If

    'A continuación, mostramos la ayuda por pantalla
    WScript.Echo "Este script recibe como parámetro una ruta de car" & _
                 "peta (si contiene espacios"
    WScript.Echo "deberá estar encerrada entre comillas) y la añade" & _
                 " a la variable de entorno"
    WScript.Echo "Path."
    WScript.Echo ""
    WScript.Echo "Sintaxis"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] agregar-a-path.vbs [/?] ruta"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo "- ruta (Requerido):"
    WScript.Echo "Ruta que se quiere agregar a la variable de entor" & _
                 "no Path"
    WScript.Echo ""
    WScript.Echo "- /?: ayuda (Opcional):"
    WScript.Echo "Muestra la ayuda en línea"
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo "Ejemplo:"
    WScript.Echo ""
    WScript.Echo "- Se incluye la ruta ""c:\carpeta"" a la variable" & _
                 " de entorno %Path%:"
    WScript.Echo ""
    WScript.Echo "wscript agregar-a-path.vbs ""\c:carpeta"""
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo ""

End Sub 's_Ayuda

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: