OscarRo95
Usuario (Paraguay)
Conocer y usar en la práctica las variables de entorno en Windows XP, 7 y 8. Emplearlas en archivos batch, scripts y otras aplicaciones. Como crear nuevas variables mediante la interface del sistema o la línea de comandos. Las variables de entorno se crean por la necesidad de acceder al contenido de valores dinámicos, distintos en cada sistema, son parámetros preestablecidos a rutas, valores o aplicaciones que cambian según el entorno, PC o sistema o el usuario que los utilice. Las variables permiten acceder a archivos y funciones comunes del sistema en cualquier lugar donde estas se encuentren localizadas. Cada usuario tiene la opción de escoger diferentes ubicaciones físicas a archivos y directorios de su sistema, pero siempre las variables indicarán la ubicación exacta. Algunos ejemplos de variables de entorno preestablecidas son: __________________________________________________________________________ El nombre del usuario en cualquier equipo lo devuelve la variable %USERNAME% El directorio donde escriben los archivos temporales las aplicaciones o programas es %TEMP% o %TMP%. __________________________________________________________________________ ¿Cuál es el uso práctico de las variables de entorno? Cualquier aplicación del sistema o programa instalado, al tener necesidad de escribir valores en tu carpeta de usuario. solo podrá hacerlo utilizando la variable antes mencionada %USERNAME%. La ruta es diferente en cada equipo porque incluye el nombre del usuario que difiere en cada ocasión. De la misma forma si creas un archivo batch para copiar un archivo determinado en la carpeta Escritorio y deseas que puedan utilizarlo otros usuarios, es necesario usar la variable %USERPROFILE% ya que la carpeta Escritorio se encuentra dentro de la carpeta del usuario. En este caso tu archivo batch tendrá que contener la ruta: %USERPROFILE%Desktop para asegurarte que funcione en cualquier computadora en la que se ejecute. De forma similar se usan otras variables de entorno existentes. Windows incluye algunas predeterminadas, pero existen otras que son agregadas por programas y que son imprescindibles para su funcionamiento. ¿Cómo conocer las variables de entorno de nuestro sistema? Para conocer las variables de entorno actualmente establecidas en nuestro sistema, solo es necesario abrir la consola de cmd e introducir el comando SET, se mostrarán todas las variables de entorno actuales junto con sus respectivos valores. ¿Cómo crear una variable de entorno? Es posible crear variables de entorno en nuestro sistema, para establecer parámetros determinados en la configuración de Windows. Existen dos maneras, mediante la interface de Windows y utilizando la línea de comandos. 1- Crear una variable de entorno mediante la interface de Windows. Ejemplo 1- Crear una variable para establecer un directorio que sirva de destino y almacén para que todos los archivos que se copien con distintos comandos se guarden allí. En este ejemplo la carpeta que recibirá todos los archivos que copies está en la ruta: D:Almacen ___________________________________________________________________________ Para crear la variable accede a: Propiedades de Mi PC -> Opciones avanzadas -> Variables de entorno En la parte superior de la ventana donde dice Variables de entorno para el usuario, da un clic sobre el botón Nuevo. En Nombre de la variable escribe COPIAS. En Valor la ruta: D:Almacen. Es todo. Un ejemplo del código usado para copiar todo el contenido de un DVD que está en la unidad E a tu carpeta Almacén: robocopy E: %COPIAS% /E ___________________________________________________________________________ Ejemplo 2- Crear una variable para ejecutar una aplicación, en este ejemplo VirtualDub que está en la ruta: C:AplicacionesVirtualDub-1.9.3VirtualDub.exe. ___________________________________________________________________________ Accede a la ventana de Variables de entorno, da un clic sobre el botón Nuevo, en Nombre de la variable escribe VD, en Valor la ruta a la aplicación. Para iniciar la aplicación en la ventana de cmd escribe %VD% y Enter. ___________________________________________________________________________ 2- Crear una variable de entorno utilizando la línea de comandos. ___________________________________________________________________________ También puedes crear una variable de entorno mediante la línea de comandos, para eso utiliza el comando SETX de la siguiente forma: SETX VARIABLE VALOR. Para crear la variable del primer ejemplo solo utiliza: SETX COPIAS D:Almacen y presiona Enter. Como verás es mucho más fácil. ___________________________________________________________________________ Lista de las variables de entorno en Windows 7 y 8. ___________________________________________________________________________ Para conocer el valor de algunas de estas variables puedes ingresarlas directamente en la consola de cmd, Inicio o en Ejecutar, para mostrar otras tienes que anteponer el comando echo a la variable. Algunas de las variables no almacenan un valor fijo, sino que se evalúan al momento de pedir su valor, son los casos de: %CD%, %DATE%, %TIME%, %ERRORLEVEL% y %CMDCMDLINE%. ___________________________________________________________________________ %ALLUSERSPROFILE% Esta variable devuelve la localización del perfil de todos los usuarios, por lo general es C: ProgramData, carpeta oculta en la unidad C. %APPDATA% Una de las variables más utilizadas, carpeta oculta donde guardan sus datos las aplicaciones, se encuentra dentro de la carpeta de usuario. En Windows 7 y Vista la ruta es la siguiente: C: UsersNombreDeUsuarioAppDataRoaming. En Windows XP la ruta es diferente: C: Documents and SettingsNombreDeUsuarioDatos de programa. %COMMONPROGRAMFILES% Carpeta donde los programas almacenan archivos comunes: C: Program FilesCommon Files. %CMDCMDLINE% Muestra el comando exacto empleado para acceder al intérprete de comandos (cmd.exe). Por ejemplo usándolo en la ubicación exacta de la consola muestra: C: Windowssystem32cmd.exe Abriendo una ventana de cmd en el escritorio mostrará: "cmd.exe" /s /k pushd "C: UsersNombreDeUsuarioDesktop". %CMDEXTVERSION% Devuelve el número de versión de nuestro intérprete de comandos. %COMPUTERNAME% Devuelve el nombre del equipo. %COMSPEC% Devuelve la ruta de la shell de comandos, normalmente: C: WindowsSystem32. %DATE% Devuelve la fecha actual. %ERRORLEVEL% Devuelve el código de error del último comando ejecutado. %HOMEDRIVE% Devuelve la unidad en la que está el directorio en el que estás actualmente. %HOMEPATH% Devuelve la ruta completa a dicho directorio. %LOGONSERVER% Devuelve el nombre de nuestro servidor (similar a COMPUTERNAME pero antecedido de dos barras inclinadas \) %LOCALAPPDATA% Carpeta donde los programas guardan archivos temporales. Generalmente C: UsersNombreDeUsuarioAppDataLocal. %NUMBER_OF_PROCESSORS% Devuelve el número de procesadores instalados en el equipo. %OS% Devuelve nuestro sistema operativo, con la excepción de Windows 2000 y XP que lo devuelven como Windows_NT. %PATH% Contiene una lista separada por punto y coma de directorios en los cuales se buscarán los archivos ejecutables que no se invocan con una ruta explícita. Aparecerá lo siguiente más otros directorios agregados por diversas aplicaciones. C: Windowssystem32; C:Windows; C:WindowsSystem32Wbem; C: WindowsSystem32WindowsPowerShellv1.0 %PATHEXT% Esta variable contiene una lista separada por punto y comas con las extensiones conocidas de los archivos ejecutables. Si el nombre de un ejecutable termina con una extensión incluida en esta lista, es posible omitir dicha extensión al invocar el programa. Por ejemplo: .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC. %PROCESSOR_ARCHITECTURE% Devuelve la arquitectura del procesador. %PROCESSOR_IDENTIFIER% Devuelve la descripción del procesador. %PROCESSOR_LEVEL% Devuelve el número de modelo de procesador. %PROCESSOR_REVISION% Devuelve el número de revisión del procesador. %PROGRAMDATA% Carpeta donde los programas almacenan datos, normalmente: C: ProgramData. %PROGRAMFILES% Devuelve la carpeta donde se instalan los programas, normalmente: C: Archivos de Programa. %PSModulePath% Ruta a los modulos de PowerShell, C: Windowssystem32WindowsPowerShellv1.0Modules %PUBLIC% Carpeta donde se guardan datos públicos compartidos de todos los usuarios, generalmente: C:UsersPublic. %RANDOM% Devuelve un número al azar entre 0 y 32767. %SYSTEMDRIVE% Devuelve la unidad que contiene el directorio raíz del sistema, generalmente: C. %SYSTEMROOT% Devuelve la carpeta de administración, que suele ser C: Windows. %TEMP% %TMP% Estas dos variables contienen la ruta a los directorios donde las aplicaciones y programas pueden almacenar sus archivos temporales. En Windows 7 es: C: UsersNombreDeUsuarioAppDataLocalTemp En Windows XP la ubicación es: Cocuments and SettingsNombreDeUsuarioConfiguración localTemp. %TIME% Devuelve la hora actual. %USERNAME% Devuelve el nombre del usuario actual. %USERPROFILE% Devuelve la ruta del directorio donde están los archivos del usuario actual, normalmente: C:UsersNombreDeUsuario. %WINDIR% Devuelve la ruta de la carpeta del sistema operativo, normalmente: C: Windows. %ALLUSERSPROFILE% Localización del perfil de todos los usuarios, por lo general es C: Documents and SettingsAll Users %APPDATA% Carpeta oculta donde guardan sus datos las aplicaciones, se encuentra dentro de la carpeta de usuario. C: Documents and SettingsNombredeUsuarioDatos de programa %CLIENTNAME% Nombre del equipo %CommonProgramFiles% Archivos comunes: C: Archivos de programaArchivos comunes %COMPUTERNAME% Nombre del equipo %ComSpec% Ruta al ejecutable de CMD: C: WINDOWSsystem32cmd.exe %HOMEDRIVE% y %SystemDrive% Unidad de sistema %HOMEPATH% Ruta relativa a la carpeta del usuario: Documents and SettingsNombredeUsuario %Path% Rutas a los ejecutables del sistema %PATHEXT% Archivos ejecutables predeterminados: COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH %ProgramFiles% Ubicación de los archivos de programas, normalmente: C: Archivos de programa. %SystemRoot% y %Windir% Carpeta de Windows, generalmente: C: WINDOWS %TEMP% y %TMP% Ubicación de archivos temporales, generalmente: C : Documents and SettingsConfiguración localTemp %USERNAME% Nombre del Usuario %USERPROFILE% Carpeta del usuario, generalmente:C: Documents and SettingsNombredeUsuario
Te contaré como controlo yo este tema de los usuarios en aplicaciones en red, quizás te pueda servir.Añado una tabla adicional con los siguientes campos: Puesto, Fecha, Hora, UsuarioEn esta tabla, al configurar el puesto de red para que pueda operar con la aplicación, el proceso agrega un registro a dicha tabla ydeja en el campo "Puesto" el valor de sys(0) que devuelve como ya sabrás (la máquina de red cuando se utiliza VFP en un entornode red.)Cuando una máquina, arranca la aplicación lo primero que hace es buscar en dicha tabla su sys(0)SELE "loquesea"LOCATE FOR sys(0) $ "loquesea".puesto*** y si no lo encuentra está claro que no se le permite seguir .... IF eof() && no se encontró***(mensaje de: terminal no autorizado y a la P. calle)QUITENDIFsi lo encuentra, BLOQUEA EL REGISTRO Y pone en los campos fecha, hora, usuario los respectivos valoresSET REPROCESS TO 1IF .not. lock() && ya esta bloqueado la aplicación esta arrancada en este puestoquit && salidaENDIFREPLACE "loquesea".Fecha WITH date(), "loquesea".Hora with time(),"loquesea".Usuario with m.user SET REPROCESS TO "lo que uses habitualmente"Este bloqueo, lo mantengo hasta que salga de la aplicación como se debe salir y entonces deja en blanco los campos fecha, hora,usuario a la vez que desbloquea el registro.REPLACE "loquesea".Fecha WITH {" "}, "loquesea".Hora with "","loquesea".Usuario with ""unlock La ventaj que esto tiene, es que al salir de la aplicación "de forma incorrecta, por error, apagon etc" se desbloquea el registro si bien quedan anotados los datos del puesto, usuario, fecha y hora; los que borro si sale como es debido.Si al entrar en la aplicación, el registro está bloqueado, es señal de que ya tiene abierta la aplicación y seguramente la tieneminimizada por lo que puedes procedo a levantarsela y no seguir en esta nueva apertura.Si al entrar en la aplicación, no esta bloqueado el registro pero resulta que se encuentra los valores de fecha, hora, usuario; esseñal de que la vez anterior que entró, no salido de forma correcta; en tal caso procedo a lanzarle un mensaje de SEVERO YPELIGROSO AVISO ( ...tal usuario, entro en fecha y hora a la aplicación y no salio como debía, "es la XXXX vez que se apagade forma ilegal" operación muy peligrosa, posible perdida de datos ...avise al servicio tecnico...)¡ No te puedes hacer idea, de lo bien que queda uno cuando hay problemas y puedes mirar y decirles que ya se ha salido de laaplicación 23 veces de forma incorrecta, que ¿que es lo que quieren que hagas?, merece la pena guardar estos incidentes ya queseguramente, acabarán por mostrarte que puestos tienen problemas, bien sea de operador o de máquina o quizás dewindows, reinstalar nuevamente el windows en algunas máquinas suele ser el final de muchos problemas.Para saber si un terminal, esta conectado, o cuantos hay conectados solamente habrá que repasar la tabla en cuestión y contar elnumero de registro bloqueados. SET REPROCESS TO 1SELE "loquesea"GO TOPm.contador=0DO WHIL .not. eof()m.contador=m.contador+IIF(lock(),0,1)unclock SKIPENDDSET REPROCESS TO "lo que uses habitualmente"? "Hay "+str(m.contador)+" terminales conectados"Espero que todo lo anterior, te pueda servir de algo.