Windows-informazioni riservate: Le variabili nascoste

Incorporare una variabile di ambiente all'interno di un'altra è semplicemente questione di una corretta temporizzazione operativa.

Raymond Chen

C'è una finestra nascosta in profondità all'interno del pannello di controllo chiamato le variabili di ambiente. Per trovarlo, devi passare a pannello di controllo proprietà del sistema. Poi stare su un piede, vai nella scheda avanzata e fare clic sul pulsante variabili d'ambiente, recitando l'alfabeto con le versioni precedenti.

OK, forse un paio di quei passi sono effettivamente necessarie. Che cosa è chiaro, però, è che esso non era destinato per utenti medi essere in grado di trovare facilmente la finestra di dialogo variabili di ambiente, tanto meno capire che cosa fa.

Quando il sistema costruisce un ambiente per un nuovo utente, consulta le impostazioni stabilite nella finestra di dialogo per determinare quali variabili al posto nell'ambiente e con quali valori. Il principio generale è che se nelle sezioni utente e di sistema è impostata una variabile di ambiente, poi seguirà la definizione dell'utente.

Invece completamente ignorando la variabile di sistema, però, il sistema può usarlo per aiutare a definire la variabile utente. Spesso la gente vuole la variabile di ambiente utente basato sulla variabile di ambiente di sistema. Ad esempio, possono vogliono il percorso utente consistono di percorso di sistema, più alcune cartelle aggiuntive.

Ecco come funziona il processo di costruzione di ambiente. Si procede in circa quattro passi:

  • In primo luogo, il sistema crea alcune variabili d'ambiente intero computer predefiniti, come il sistema­radice e tutti i­utenti­profilo (ma non COMPUTER­nome o programma­Files).
  • In secondo luogo, crea le variabili di ambiente dalla sezione sistema della finestra di dialogo variabili di ambiente. Le definizioni di variabile di ambiente sistema possono utilizzare la notazione "%" per riferirsi alle variabili di ambiente predefinite create nel passaggio precedente. Ad esempio, è possibile impostare una variabile di ambiente di sistema % sistema­Drive%\Extras. Dopo aver completato l'ambiente di sistema, Windows inizia a costruire l'ambiente utente.
  • Punto tre è creare utente predefinita le variabili di ambiente, come utente­profilo e APP­dati. Il COMPUTER­nome e programma­variabili relative al file vengono create anche qui, anche se sono tecnicamente non per utente variabili e variabili di sistema.
  • Infine, il sistema crea le variabili di ambiente. Questi sono nella sezione della finestra di dialogo variabili d'ambiente utente e avere accesso a tutte le variabili creato dai primi tre passaggi, quindi è possibile impostare una variabile di ambiente utente % USER­PROFILE%\Extras o una variabile di ambiente sistema personalizzata impostato nel secondo passaggio. Se una variabile di ambiente di utente ha lo stesso nome di una variabile di ambiente di sistema, il nuovo valore sostituisce il vecchio.

La sostituzione avviene dopo che il sistema calcola il nuovo valore, così si può fare cose come avere un ambiente percorso utente definito come % PATH %;C:\Extras. La variabile % PATH % si riferisce alla versione della variabile di sistema. Ora che si vede ciò che funziona, si può capire che cosa non funziona. È la roba che non è descritto nella sezione precedente come lavoro.

Ad esempio, è possibile utilizzare ovunque % SystemRoot %. È possibile utilizzare qualsiasi variabile di ambiente di sistema per definire una variabile di ambiente di utente. Per definire una variabile di ambiente di utente, è possibile utilizzare una variabile di ambiente predefinite per ogni utente. Ma è possibile utilizzare una variabile di ambiente per utente per contribuire a definire una variabile di ambiente di sistema. Tempo non vanno indietro.

Un cliente stava avendo difficoltà impostando la variabile di ambiente PATH di sistema % APPDATA %;C:\Windows. Hanno trovato l'ambiente finale conteneva semplicemente il percorso letterale come specificato (segni di percentuale e tutti), invece di sostituirlo con il valore della variabile di ambiente APPDATA. Se si guarda attraverso la sequenza di operazioni in precedenza dettagliati, è chiaro perché questo si è verificato. Stavano cercando di impostare una variabile di ambiente sistema basata su una variabile che non era stato ancora definita.

La soluzione era semplice: Spostare il percorso dalla casella di riepilogo di sistema ambiente alla casella di riepilogo utente ambiente di editing. In questo modo, quando voleva utilizzare la variabile di ambiente % APPDATA %, la variabile ci sarebbe.

Il codice che costruisce l'ambiente utente potrebbe hanno cercato di costruire un grafico di dipendenza di fantasia. Quindi potrebbe avere aggiunto una sintassi personalizzata che ha permesso le definizioni di variabili di dichiarare se una ricorrenza particolare di % PATH % è stato destinato per riferirsi alla versione sistema o utente della variabile PATH. Poi potrebbe avere raccolto tutte le informazioni, costruite un grafico delle dipendenze e definita attentamente le variabili in un ordine, in modo che ogni variabile è stata definita prima di suoi dipendenti. Poi dovete decidere che cosa fare se è stato rilevato un riferimento circolare.

L'obiettivo dell'ambiente è non per emulare un motore di ricalcolo del foglio di calcolo. Vuole solo creare un blocco di ambiente da alcune informazioni di base, e scegliendo regole semplici rende più facile da spiegare e comprendere l'intero processo. Che è così difficile da capire?

Raymond Chen

Raymond Chendi Web site, The Old New Thing e identicamente intitolato libro (Addison-Wesley, 2007) trattare con Windows storia e programmazione Win32. Egli non nutrire gli animali di fuori di aree designate.

Contenuti correlati