Ligne de commandes dans le menu contextuel

Fermé
Gloops1 Messages postés 314 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 27 septembre 2023 - Modifié le 17 avril 2018 à 19:01
Gloops1 Messages postés 314 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 27 septembre 2023 - 17 avril 2018 à 23:00
Bonjour tout le monde,

Sous Windows 10, je cherche à pouvoir lancer une ligne de commandes sur un répertoire à partir de son menu contextuel dans l'explorateur.

Après avoir ouvert regedit en administrateur, je m'intéresse à la clef
\HKEY_CLASSES_ROOT\Directory\Background\shell\Ligne de commande\Command


et je modifie sa valeur par défaut.
J'y place la commande :
C:\Windows\System32\cmd.exe /k CD "%1"


exactement comme j'ai fait sur de nombreuses machines sur de nombreuses versions de Windows.

Dans le menu contextuel d'un répertoire, j'obtiens bien une entrée "Ligne de commandes", mais lorsque je clique là-dessus, je suis informé que "aucun programme n'est associé à ce fichier pour exécuter cette action."

Quelqu'un a-t-il une idée de quel fichier il s'agit, et de quelle action ?

Pour moi, j'ai indiqué le chemin du programme cmd.exe, je ne vois donc aucun intérêt à recourir à une association. Si après les touches Windows R je tape cmd et que je valide, on fait ce que je demande, on ne me demande pas une hypothétique association.

Est-ce qu'on a tout changé dans Windows 10 ?

A tout hasard un petit coup d’œil à la ligne de commandes :
C:\Users>assoc |find "cmd"
.cmd=cmdfile

C:\Users>ftype cmdfile
cmdfile="%1" %*


- + - + - + -

Ah, je crois que je progresse. ça marche mieux en remplaçant Directory par Folder (d'ailleurs si quelqu'un peut m'expliquer la différence exacte ça m'intéresse), mais le problème est le passage d'argument.

Je peux changer le répertoire actif sur le disque où se trouve le répertoire visé, avec la ligne de commande que j'ai indiquée ci-dessus. Le problème est que si c'est un autre disque qui est le disque par défaut, le prompt ne va pas montrer le répertoire d'où on est parti dans l'explorateur. Ce qui me manque est donc la référence des arguments passés depuis l'explorateur. Je sais que %1 retourne tout le chemin du fichier ou répertoire sélectionné, mais il y a un autre paramètre pour connaître le répertoire parent, un pour connaître l'unité de disque ... toute une tripotée comme ça, qu'on avait disponible par défaut dans le menu de démarrage sous Windows XP, mais là avec Windows 10 je rame depuis un quart d'heure pour trouver ça sur Internet.

Quelqu'un saurait-il me souffler l'argument de recherche ?
Aussi bien du coup il risque d'avoir trouvé le résultat ...

A voir également:

2 réponses

Gloops1 Messages postés 314 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 27 septembre 2023 11
17 avril 2018 à 22:57
ça y est, ça avance.

Ici https://superuser.com/questions/136838/which-special-variables-are-available-when-writing-a-shell-command-for-a-context

on trouve la plupart de ces codes.

Il manque celui que je cherchais : celui pour l'unité de disque.

Toutefois là https://windows.developpez.com/cours/ligne-commande/?page=page_30#LXXX-I

j'apprends à m'en passer en utilisant cette commande :

"C:\Windows\System32\cmd.exe" /K=CD /D "%1"


que certes je pourrais commencer à cmd du moment que le répertoire système est dans la variable PATH.
0
Gloops1 Messages postés 314 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 27 septembre 2023 11
17 avril 2018 à 23:00
J'ai donc pu faire ce que je voulais.

Si quelqu'un passe par là il peut quand même m'éclairer sur ces deux points :
- si dans HKEY_CLASSES_ROOT il existe Directory et Folder, c'est qu'il doit y avoir une différence, quelle est-elle ?
- quelle syntaxe utilise-t-on pour désigner la lettre de lecteur du chemin du fichier sélectionné ?
0