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\+01:00 agosto \13\+01:00 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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s

 
A %d blogueros les gusta esto: