Variable d'environnement Startup pour un batch

Résolu
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -  
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

jee pee Messages postés 41510 Date d'inscription   Statut Modérateur Dernière intervention   9 715
 
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 21635 Date d'inscription   Statut Membre Dernière intervention   3 407
 
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 39 Date d'inscription   Statut Membre Dernière intervention   2
 
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