J'essaie d'écrire un script batch simple qui copie certains fichiers du %userprofile%\Documents
répertoire. Je teste le script sur ma machine, mais après quelques échecs, j'ai réalisé que j'avais déplacé les données de mon utilisateur vers une partition distincte . Par conséquent, %userprofile%\Documents
est vide et (évidemment) rien n'est copié.
J'ai déjà essayé d'autres variables d'environnement telles que %homedrive%
et %homepath%
, mais elles pointent toujours vers la normeC:\...
Existe-t-il un moyen de connaître le lecteur réel utilisé pour les données de l'utilisateur?
J'utilise Windows 10.
Merci!
ÉDITER
Comme indiqué par Ƭᴇcʜιᴇ007, je n'ai pas déplacé les données de l'utilisateur vers une autre partition, mais je viens de déplacer les dossiers "principaux" (Documents, Vidéos, ...) vers certains dossiers correspondants sur une autre partition: clic droit sur (par exemple ) Documents, propriétés, chemin.
Comment puis-je trouver le chemin d'un dossier de documents qui a été déplacé de cette façon?
la source
Réponses:
Malheureusement, il n'y a pas de variable d'environnement simple que vous pouvez vérifier à partir d'un script batch si vous l'avez redirigé depuis le chemin par défaut par rapport à votre profil. Vous pouvez voir la liste complète des variables d'environnement (y compris certaines non documentées) ici:
Une autre chose à garder à l'esprit est que la redirection de dossiers vous permet même de les déplacer vers un partage réseau. Il n’a pas besoin d’être un «lecteur» que vous pouvez utiliser tous; ce pourrait être juste un chemin UNC.
La bonne nouvelle est que les informations que vous souhaitez sont disponibles dans le registre à l'emplacement suivant:
Il y a tout un ensemble de dossiers que vous pouvez déplacer dans cette
User Shell Folders
clé, mais pour lire le dossier Mes documents ici à l'aide de Windows Batch, cela ressemble à ceci:Sur ma machine, cela produit la sortie suivante, qui peut vous être plus ou moins utile selon ce dont vous avez besoin et la qualité de vos scripts Windows Batch:
Vous pouvez également essayer vbscript:
ou Powershell:
Cela peut éventuellement être disponible via bash sur Windows aussi (vraiment!), Mais je n'ai pas encore vu comment le faire d'une manière qui sera toujours précise.
la source
En supposant que vous ayez accès en écriture au dossier actuel ou à un emplacement existant connu sur l'ordinateur ... vous pouvez utiliser PowerShell!
La
Environment.GetFolderPath
fonction peut obtenir le chemin d'accès au système de fichiers d' emplacements connus , y compris le dossier Documents. Cette commande PowerShell imprime le chemin des documents:Il peut être écrit dans un fichier avec l'
Out-File
applet de commande. L'opérateur de redirection>
ne fonctionne pas vraiment ici car il produit un fichier texte Unicode avec une nomenclature, ce qui est difficile à utiliser dans le processeur par lots.Ce fichier peut être lu dans une variable batch avec
set /p
. En mettant tout cela ensemble, nous obtenons ce fragment de script batch:Le chemin d'accès au dossier Documents de l'utilisateur peut désormais être exprimé sous la forme
%DOCSPATH%
.la source
J'ai la réponse fiable. Combinaison de PowerShell qui renvoie la réponse à dos
la source
$
dans un nom de variable CMD. Mais vous savez que c'est un usage rare, non?Et bien c'est assez simple :)
L'emplacement du dossier du bureau est répertorié ici:
ou encore plus simple dans PowerShell
la source