Comment puis-je définir la variable PATH de Windows à partir de Perl?
J'ai besoin de configurer la variable d'environnement à partir de l'intérieur de Perl. Idéalement, j'ai besoin d'interroger une variable et ensuite de le modifier si ce n'est pas ce qui est nécessaire. Précisément, c'est la variable de CHEMIN d'accès, je veux changer.
Comment puis-je obtenir et définir ces variables?
OriginalL'auteur Xetius | 2009-02-04
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de modifier des variables d'environnement à l'échelle mondiale et de manière permanente, comme si vous définissez dans le panneau de commande, puis vous avez à muck avec le registre (mise à jour: et maintenant, il existe des modules pour ce faire, Win32::Env et Win32::Env::Chemin De). Notez que la modification de variables dans le registre et la "radiodiffusion" le changement ne sera pas modifier les variables d'environnement dans certains processus en cours, notamment perl.exe et cmd.exe.
Si vous souhaitez simplement modifier le processus actuel (et par la suite donné naissance à l'enfant de processus), puis le global %ENV hachage variable est ce que vous voulez (par exemple, $ENV{PATH}). Voir perldoc perlvar.
Merci, je ne savais pas à propos de ces modules...et ils n'existaient pas à l'époque de la perlmonks nœud.
Que l'on peut très bien s'inspirer de vos post... qui sait. 🙂 Il n'a pas l'air comme ça inclut l'étape de la PM, nœud à la diffusion de la mise à jour.
C'est ok que Win32::Env::Chemin d'accès n'est pas diffusé...il est plus facile de jouer avec le chemin d'accès au moins, vous pouvez utiliser Win32::Env pour la diffusion.
perl -e "("cmd /C \"setx var valeur -m\" ')" .. set var=valeur dans le registre pour tous les processus. Type setx /? dans cmd pour plus d'info.
OriginalL'auteur
$ENV{PATH}?
Gardez à l'esprit que les variables d'environnement affectent uniquement les sous-processus, cependant. Vous ne pouvez pas exécuter un programme en Perl, variation %ENV, puis voir le changement dans le processus parent -- l'environnement ne fonctionne pas de cette façon.
Les grands esprits se rencontrent 😉
Ack, c'était juste ce que je voulais faire. Merci pour la réponse quand même
OriginalL'auteur jrockway
Vous pouvez le faire en utilisant les
%ENV
de hachageOriginalL'auteur Leon Timmermans