Variable d'environnement Startup pour un batch

Résolu/Fermé
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 - 27 avril 2022 à 14:46
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 - 27 avril 2022 à 15:53
Bonjour à tous,

Décidément, c'est la journée des questions et des blocages...

Je souhaite transférer un ou plusieurs fichiers sur mon répertoire de démarrage Windows "Startup" se situant au chemin suivant :

C:\Users\direction\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

Je réalise un .bat simple avec une ligne de xcopy :

xcopy "Lanceurdemarrage.vbs" "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" /i/y/C/q/h


Cependant, je souhaiterais utiliser le programme sur plusieurs PC, et je voudrais rajouter une variable d'environnement.

J'ai lu sur la doc Microsoft qu'il existait une variable environnement pour le menu de démarrage : https://docs.microsoft.com/fr-fr/windows/deployment/usmt/usmt-recognized-environment-variables

Il s'agirait de : CSIDL_STARTUP

D'aprés la docs de Microsoft : Répertoire du système de fichiers qui correspond au groupe de programmes de démarrage de l’utilisateur. Un chemin d’accès classique est C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Dans mon code j'ai écrit :

xcopy "Lanceurdemarrage.vbs" "%CSIDL_STARTUP%" /i/y/C/q/h


J'ai une réponse de la console m'indiquant :

C:\Users\direction\OneDrive\Desktop\Logiciel>xcopy "Lanceurdemarrage.vbs" "" /i/y/C/q/h
Spécification du lecteur non valide
0 fichier(s) copié(s)


Pourtant, d'après ce que je comprends, il semblerait que cette variable prenne bien en compte le lecteur "C" dans mon cas. Si je rajoute un %userprofile% avant %CSIDL_STARTUP% de la manière suivante :


"%userprofile%%CSIDL_STARTUP%"


Le fichier va bien dans %userprofile% mais pas dans le démarrage.

Merci pour votre aide.





Configuration: Windows / Chrome 100.0.4896.127
A voir également:

2 réponses

jee pee Messages postés 40566 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 décembre 2024 9 460
Modifié le 27 avril 2022 à 15:04
Bonjour,

La variable %CSIDL_STARTUP% n'existe pas, je ne sais pas où tu as péché cela (*).

Le startup particulier d'un utilisateur, c'est bien
"C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

Et il existe un répertoire global, commun aux utilisateurs
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"

edit : (*) en fait ton CSIDL... c'est dans des fichiers XML de paramétrage du Windows Update dans une stratégie de déploiement.

1
brucine Messages postés 18312 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 19 décembre 2024 2 711
27 avril 2022 à 15:34
Bonjour,

Si je joins 2 variables même réelles: %userprofile%%CSIDL_STARTUP% je vais forcément échouer puisqu'il manquera un slash: %userprofile%\%CSIDL_STARTUP%

Cela dit, pourquoi utiliser: C:\Users\%username%\AppData\Roaming\ (où il y a déjà une variable) alors que %appdata%\ conduit au même résultat?

Si maintenant la place à la ligne de commande est chère, rien n'interdit de créer une variable:

SET -chemin=%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

puis d'utiliser la variable %-chemin% et peut-être plus volontiers entre guillemets du fait de l'espace Start Menu:

XCOPY (source) "%-chemin%"
1
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 2
27 avril 2022 à 15:53
Merci pour vos réponses à tous les deux, effectivement j'avais mal compris le contexte de la doc de Microsoft. Il n'existe pas de variable native menant au démarrage en Batch.

Comme l'a dit Brucine, je créerai une variable contenant le chemin afin d'éviter de le répéter.

Merci pour votre aide.
0