7
votes

Existe-t-il une variable d'environnement qui représente un dossier "C: \ Documents and Settings" ou C: \ utilisateurs dossier dans Windows?

Y a-t-il une variable d'environnement ou un autre format que le chemin de profil est représenté sous Windows? Je veux interroger de manière à obtenir la valeur "C: \ Documents et paramètres (Si Windows XP ou 2K3) ou C: \ utilisateurs (si Vista ou Windows 7).

Je ne veux pas que le nom d'utilisateur actuel annexé à la chaîne, que je puisse obtenir à Thru% userprofile% variable.


2 commentaires

Comme vous pouvez mettre des profils utilisateur n'importe où par exemple Vous pouvez définir Marquez comme C: \ Mark Pourquoi avez-vous besoin de cela et non d'UserProfile? Notez également que le dernier répertoire n'est pas nécessairement identique à celui du nom d'utilisateur.


Oui Mark .. Qu'est-ce que vous avez dit est vrai. Je veux juste savoir où se trouve un profil utilisateur particulier? De plus, mon environnement ne "redirigeait pas" ces profils autres que les emplacements par défaut.


5 Réponses :


11
votes

Cela n'existe pas. Au lieu de cela, essayez % userprofile% \ ..

AVERTISSEMENT: Comme @ @mark suggère, il n'est pas fiable car le répertoire de profil utilisateur peut vraiment être n'importe quel emplacement arbitraire.


4 commentaires

Le% UsandProfile% ajoutez le nom d'utilisateur actuel. Je veux l'utiliser pour un nom d'utilisateur différent. Je peux toujours le faire par un code supplémentaire dans mon script. Mais je veux juste savoir s'il y a une meilleure façon de le faire.


Le répertoire de profils d'un autre utilisateur n'est pas nécessairement% userprofile% \ .. \ Autresuser. Mais si vous êtes sûr que ce soit, alors oui, vous devrez le fouetter manuellement dans votre script.


@svv: Comment savez-vous que l'autre utilisateur a son répertoire de profil dans un endroit similaire?


Anon, comme je l'ai mentionné ci-dessus, mon environnement de configuration ne fait aucune redirection pour les profils utilisateur. Ce ne sont que des paramètres par défaut de Windows.



2
votes

au meilleur de ma connaissance non; Mais vous pouvez faire une dernière instance de '/' pour trouver le répertoire parent de % userprofile%


0 commentaires

3
votes

sur Vista + Vous pouvez utiliser folderid_userprofiles pour obtenir C: \ utilisateurs (ou quoi qu'il puisse être dans des versions localisées, etc.). Sur XP et plus tôt, vous devez aller à peu près à l'itinéraire CSIDL_COMMON_DESKTOPTOPORY qui vous donnera des "C: \ Documents et des paramètres \ Tous les utilisateurs \ Desktop" et suivez votre chemin de retour de là.

Je pense que cela règle pour Vista. Pour XP, la solution n'est pas parfaite, mais au moins elle ne dépend pas du chemin de profil de l'utilisateur actuel. "Tous les utilisateurs" existeront toujours et je ne peux pas penser à une raison pour que ce soit dans un endroit autre que la valeur par défaut.


3 commentaires

Je pense que la méthode préférée serait getprofilesDirectory ( msdn.microsoft.com/en-us /Library/bb7622278.aspx ).


@Luke: wow. Comment diable avez-vous tiré cette API obscure de votre tête?


Je reçois toujours un coup de pied des réactions des gens à l'existence de cette fonction. Je suppose que puisqu'il est un peu isolé à userenv au lieu de regrouper avec toutes les autres fonctions de chemin dans Shell32 Les gens ont tendance à ne pas savoir à ce sujet.



1
votes

Ouais, il est en fait un moyen de le faire fonctionner: xxx


1 commentaires

Downvoting parce que cette réponse ne ajoute rien de nouveau à ce que Tennfour a suggéré. S'il vous plaît envisagez de le supprimer



1
votes

J'ai dérivé les méthodes de lot et de VBS (ci-dessous), car je n'ai pas pu trouver une méthode équivalente par lots ou VBS pour cette question ailleurs. Si je ne devrais pas l'ajouter à ce fil (JScript), veuillez ajouter un commentaire sur la façon dont il devrait aller, et je supprimerai cette réponse et publier comme indiqué. :)

lot (ligne unique - aucun retour de chariot): xxx

vbscript: xxx


0 commentaires