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). P>
Je ne veux pas que le nom d'utilisateur actuel annexé à la chaîne, que je puisse obtenir à Thru% userprofile% variable. p>
5 Réponses :
Cela n'existe pas. Au lieu de cela, essayez 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. P> % userprofile% \ .. code> p>
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.
au meilleur de ma connaissance non; Mais vous pouvez faire une dernière instance de '/' pour trouver le répertoire parent de % userprofile% code> p>
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à. p>
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. P>
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.
Ouais, il est en fait un moyen de le faire fonctionner:
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
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): p> vbscript: p>
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.